将Ruby移植到Python

时间:2012-11-21 13:08:56

标签: python ruby port

我正在将一段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

1 个答案:

答案 0 :(得分: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大小(字符串长度),第二级密钥是国家代码。这些值似乎是一个国家的电话拨号前缀。