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