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似乎是一本字典。第一级键是 country_code 大小(字符串长度),第二级键是国家代码。这些值似乎是一个国家的电话拨号前缀。

于 2012-11-21T16:56:33.403 回答