bra*_*orm 8 python variadic-functions python-import python-3.x
python2.6中的以下代码抛出语法错误
>>> def f(a,*args,c):
File "<stdin>", line 1
def f(a,*args,c):
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
但是这种语法在python3.0中是有效的.我想知道我应该在我的解释器中导入什么才能使它工作.即.from import __future__ ????
对于print function3.0的导入,我会这样做from __future__ import print_function
同样,这种定义在2.6中无效
def f(a,*b,c=5,**kwargs):
Run Code Online (Sandbox Code Playgroud)
虽然它在3.0中是合法的
Mar*_*ers 19
Python的3编译器的这一功能已不被移植到Python 2.x的
没有魔术from __future__ import开关来启用它,你唯一的选择就是升级到Python 3.x.
您的第二个功能可以定义为:
def (a, *b, **kwargs):
c = kwargs.pop('c', 5)
Run Code Online (Sandbox Code Playgroud)
兼容Python 2.
PEP 3102中讨论了新语法,它在Python 2.x中确实无效.
但是,您可以**kwargs手动获取关键字参数:
def f(a, *b, **kwargs):
if 'c' in kwargs:
pass
Run Code Online (Sandbox Code Playgroud)
另一种方法是升级到Python 3.x.
| 归档时间: |
|
| 查看次数: |
1285 次 |
| 最近记录: |