我需要以 Python 2 和 3 兼容的方式编写 0644 (0o644)。怎么做?我唯一的想法是从字符串中解析它或转换为十六进制或十进制。这不是人类可读的。我不介意速度慢,它只被调用一次。
非常旧的 python 2 版本(< 2.6 https://www.python.org/dev/peps/pep-3127/#transition-from-2-6-to-3-0) 不接受八进制前缀0o644
.
If you really需要兼容 python 2.5 或更早版本,您可以使用以下命令解析八进制字符串int
int('644',8)
请注意兼容性技巧ImportError
, NameError
, ...异常在这里不起作用,因为你无法捕获SyntaxError
,解析器不会让这种情况发生:
# that doesn't work
try:
x = 0644 # either crashes here
except SyntaxError:
x = 0o644 # or here
# that doesn't work
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)