首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中调用复杂方法的最短和最好的方法是什么?

在python中调用复杂方法的最短和最好的方法是什么?
EN

Stack Overflow用户
提问于 2017-12-17 21:14:41
回答 2查看 62关注 0票数 0

运行此区段代码时出现错误:

代码语言:javascript
复制
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()方法:

代码语言:javascript
复制
def foo(*arg, a=1, b=None, unit=1):
    pass

我不想给静态单位变量(a,b,.foo() )赋值

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-19 14:49:22

我认为调用.foo()方法的显式且最短的方法类似于下面的代码:

代码语言:javascript
复制
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

或者:

代码语言:javascript
复制
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()

票数 0
EN

Stack Overflow用户

发布于 2017-12-17 21:23:42

*arg表示该方法根据位置值采用可变长度的参数。

下面的例子可能会让我们对这个概念有所了解!希望它能帮上忙!

代码语言:javascript
复制
>>> 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47855488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档