我发现py2和py3之间有奇怪的区别
请参阅代码: https://github.com/DoumanAsh/collectionScripts/blob/master/python/art/trace.py#L101
在py2中尝试使用此方法导入类时:
from trace import EventTracer3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "trace.py", line 101
def trace(self, event, *argv, frame=None):
SyntaxError: invalid syntax
但是py3是可以的。 我在py2中找不到任何时候函数的参数有任何限制。。。 这实际上有点奇怪,因为据我所知,python2和python3在函数声明方面应该没有任何区别。我是对是错?你知道吗
有意的,有记录的。见the Python 2 grammar:
…所以,你可以有你的常规参数,逗号分隔,后跟
*NAME
,*NAME, **NAME
或**NAME
,这必须是你的参数列表的结尾。你知道吗您还可以看到Python 2 tutorial对kwargs的描述:
…添加了强调;在Python2中,kwargs必须是列表中的最后一个参数。你知道吗
python3.0引入了PEP 3102,它添加了可以跟随vararg列表的仅关键字参数;这就是示例代码所使用的。你知道吗
相关问题 更多 >
编程相关推荐