我想得到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(使用前将#替换为@)