运行此区段代码时出现错误:
def foo(a=1, b=None, unit=1, *arg):
# some process
print(a + min(arg))
foo(arg=3,4)
Out[0]: SyntaxError: non-keyword arg after keyword arg
调用.foo()
方法的最佳方式是什么?
我想要得到一些最小的数字,然后添加到'a‘值作为静态。
注意::假设.foo()
有一些静态输入变量。
注释:我希望"4"
能够打印出来。
我知道我们不能像下面这样定义.foo()
方法:
def foo(*arg, a=1, b=None, unit=1):
pass
我不想给静态单位变量(a,b,.foo()
)赋值
发布于 2017-12-19 14:49:22
我认为调用.foo()
方法的显式且最短的方法类似于下面的代码:
def foo(a=1, b=None, unit=1, *arg):
# some process
print(a + min(arg))
def co_foo(*arg): # co function
foo(1, None, 1, *arg)
co_foo(5,3,4) # expected print(1+3)
Out[0]: 4
或者:
def foo(a=1, b=None, unit=1, *arg):
# some process
print(a + min(arg))
def co_foo(*arg): # co function
foo(1, None, 1, *arg)
arg = [5, 3, 4]
co_foo(arg) # expected print(1+3)
Out[1]: 4
在这种方法中,我们定义了一个协同函数来简单地调用.foo()
发布于 2017-12-17 21:23:42
*arg表示该方法根据位置值采用可变长度的参数。
下面的例子可能会让我们对这个概念有所了解!希望它能帮上忙!
>>> def foo(a=1, b=None, unit=1, *arg):
... print(arg)
... print(a+min(arg))
...
>>> foo(*[1,2,3,5,6,7])
(5, 6, 7)
6
https://stackoverflow.com/questions/47855488
复制相似问题