Python:使用位置参数之前的默认参数调用函数

标签 python parameters arguments parameter-passing optional-parameters

例如,我想做这样的事情:greet(,'hola'),其中 greet 是:

def greet(person='stranger', greeting='hello')

这对编写代码时的测试有很大帮助

最佳答案

在调用一个函数时,您可以使用变量名来更清楚地知道哪个变量将采用哪个值。同时,如果在函数定义中提供默认值,调用函数时跳过变量不会引发任何错误。所以,简而言之,你可以这样做:

def greet(person='stranger', greeting='hello')
    print('{} {}'.format(greeting, person))
    return

greet(greeting='hola')  # same as greet(person='stranger', greeting='hola')
# returns 'hola stranger'

请注意,正如我上面所说,如果您的函数定义如下所示,这将不起作用:

def greet(person, greeting)
    print('{} {}'.format(greeting, person))
    return

因为在这种情况下,Python 会提示说它不知道如何处理 person;没有提供默认值..

顺便说一句,您描述的问题很可能是首先使用默认值的原因

关于Python:使用位置参数之前的默认参数调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44138277/

相关文章:

node.js - nginx 到 node.js - 传递参数

PHP5 : Specifying a datatype in method parameters

java - 如何从命令行运行带有 vm 参数的 java 项目?

python - 列表构造的奇怪 pycharm 警告

Python Pillow EXIF 数据未返回

python - 从 csv 列中提取最常见的组合

python - 如何解决Python错误 "not all arguments converted while string formatting"

python - 在 hvplot 中自定义标记列表

c# - 如何在C#中传递任意数量的参数

R:检查是否提供了强制/必需的参数