代码从 Python 2.6 更改为 3.x

2023-12-24

我想得到pywbem http://pywbem.svn.sourceforge.net/在 Python 3.2 中工作(在 2.6 中工作正常),但在 mof_compiler.py 中的这部分代码上构建失败:

  File "pywbem-0.7.0\mof_compiler.py", line 1341
    print s
          ^
SyntaxError: invalid syntax

这是一个宏,定义如下:

def _print_logger(s):
    print s

我不明白为什么这是无效的,请解释如何在 Python 3.2 中执行相同的操作。

注意:我对 Python 的经验很少或根本没有。

PS:我已经对 3.2 的代码做了一些小的更改,例如 改变

except CIMError, ce:

to

except CIMError as ce:

根据 Lennart Regebro 的回答,这里是我发现的一些其他更改(将它们放在这里,因为它可能对其他人有用)。

exec "import %s as lextab" % tabfile -> exec ("import %s as lextab" % tabfile)
raise ValueError,"Expected a string" -> raise ValueError("Expected a string")

这不是一个宏,而是一个函数定义,在 Python 3 中 print 语句现在是一个函数。也如此print(s)反而。

Python 2 和 Python 3 之间的更改列表如下:http://docs.python.org/release/3.0.1/whatsnew/3.0.html http://docs.python.org/release/3.0.1/whatsnew/3.0.html不太好读,但我不知道网上是否有更好的(虽然有书)。

如果您打算使用 Python 3,那么最好买一本 Python 3 的书。现在有几个已经出来了。或者至少参考 Python 3 文档:http://docs.python.org/release/3.2/ http://docs.python.org/release/3.2/它有一个不错的教程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代码从 Python 2.6 更改为 3.x 的相关文章

随机推荐