python - 函数对象属性 __kwdefaults__ 有什么用?

标签 python python-3.x

函数对象有属性 __defaults____kwdefaults__。我看到如果一个函数有一些默认参数,那么它们将作为元组放入 __defaults____kwdefaults__None。什么时候使用属性 __kwdefaults__

最佳答案

def foo(arg1, arg2, arg3, *args, kwarg1="FOO", kwarg2="BAR", kwarg3="BAZ"):
    pass

print(foo.__kwdefaults__)

输出(Python 3):

{'kwarg1': 'FOO', 'kwarg2': 'BAR', 'kwarg3': 'BAZ'}

因为 *args 会吞掉所有非关键字参数,所以它后面的参数必须与关键字一起传递。参见 PEP 3102 .

关于python - 函数对象属性 __kwdefaults__ 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533929/

相关文章:

python - 计算迭代器的产量数?

python - 异步迭代器定期滴答

Python 在不使用方法的情况下选择字符串中的第一个单词

python - 如何将一个函数中的多个变量用于另一个函数?

python - 当从另一个进程保存对象时,在 Model.objects.filter() 之后需要 Django transaction.commit()

python - celery 任务中的grpc超时

python - 如何通过诗歌构建C扩展?

python - ValueError : Error when checking target: expected avg_pool to have 4 dimensions, 但得到形状为 (100, 2) 的数组

python - 正则表达式从以 _ 和 _ 下划线后的 str 结尾的字符串中获取数字

django - 从 http 请求中检索实际文件(对于 os.stat)