2

Ruby の一部を Python に移植しています。以下を除くコードの大部分を移植しました。私はそれが何をするのか本当に理解できません。

変数 rest は、電話番号を表す文字列になります。その唯一の本当に

country_handler = splitter_mapping[i][presumed_cc]

私は混乱していると思います。おそらくPythonでkwargsを使用できると思いますが、よくわかりません。

何か案は?

module Phony

  class CountryCodes

    attr_reader :splitter_mapping

    def split_cc rest
      presumed_cc = ''
      1.upto(3) do |i|
        presumed_cc << rest.slice!(0..0)
        country_handler = splitter_mapping[i][presumed_cc]
        return [country_handler, presumed_cc, rest] if country_handler
      end
      # This line is never reached as CCs are in prefix code.
    end
4

1 に答える 1

1

コードと Frederick Cheung のコメントから、翻訳は次のようになると思います。

def slit_cc(rest):
    for i in range(1, 4): # country_code size
        presumed_cc = rest[0:i]
        country_handler = splitter_mapping[i].get(presumed_cc):
        if country_handler:
            return [country_handler, presumed_cc, rest]

    return None # shouldn't happen

splitter_mapping辞書の辞書のようです。第 1 レベルのキーは country_code のサイズ (文字列の長さ) で、第 2 レベルのキーは国コードです。値は、国の電話番号のプレフィックスのようです。

于 2012-11-21T16:56:33.403 に答える