我想让我的python2.x-Code兼容2.7和3.x.目前我被困在Pmw.py的一些代码中(来自python megawidgets)。有一个看看这个字典的前三项:如何找到python3中string.atol的兼容替代方案
_standardValidators = {
'numeric' : (numericvalidator, string.atol),
'integer' : (integervalidator, string.atol),
'hexadecimal' : (hexadecimalvalidator, lambda s: string.atol(s, 16)),
'real' : (realvalidator, Pmw.stringtoreal),
'alphabetic' : (alphabeticvalidator, len),
'alphanumeric' : (alphanumericvalidator, len),
'time' : (timevalidator, Pmw.timestringtoseconds),
'date' : (datevalidator, Pmw.datestringtojdn),
}
前两个条目包含“string.atol”。我的问题是:
在Python文档蒂被引入作为一个函数(
string.atol(s[, base])
),所以应该有括号,这是在这里失踪。那么如何理解这个语法呢?在蟒蛇3.2这段代码引发错误:
'numeric' : (numericvalidator, string.atol), AttributeError: 'module' object has no attribute 'atol'
我已经尝试过长替换的“蒂”三个OCCURENCES,像Python文档建议,但只是引发的错误:
'numeric' : (numericvalidator, string.long), AttributeError: 'module' object has no attribute 'long'
因为我甚至不理解语法,所以我对接下来要尝试的东西感到无奈。这段代码是如何修复的,以便它能够在python 2.7和3.x中使用?
希望你能帮助我。
“在蟒蛇3.2这段代码引发错误:” - 你忘了说的错误是什么是。 – 2012-01-28 04:46:48
@LennartRegebro:他确实说了什么是错误信息,虽然 - 他粘贴了AttributeError。格式化有一些不足之处,但这是他的第一个。 :^) – DSM 2012-01-28 05:05:56
@DSM对,你是我的坏人。格式不知何故,我的眼睛只是跳过它, – 2012-01-28 07:43:16