函数对象具有属性__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-3.x相关问答推荐

Python多处理池:缺少一个进程

谁能解释一下这个带邮编的多功能环路?

根据另一列中的条件填写该列中的值

使用Python抓取sofascore以获取有关球队阵容和投票的信息

CDKTF ec2 具有特定私有 IP 地址的娱乐

使用 Fetch 提交表单到 Django 视图

在REPLACE INTO中引用变量会抛出sqlite3.OperationalError

三重奏:为什么频道被记录为使用async with,而不是with?

我想使用命令提示符安装 cv2

在 string.find() 条件下加入两个 Dataframes

为列表列表中的每个列表插入 str 到 index[0] 中. Python

Snakemake 'run' 指令不产生错误信息

如何在 VSCode 的在 Cloud Run Emulator 上运行/调试构建设置中添加 SQL 连接

在python中基于列表理解的条件下跳过元素

运行 PyCharm 测试时如何解决django.core.exceptions.ImproperlyConfigured:找不到 GDAL 库?

为什么我在 Python 中收到错误消息无法导入名称 NoneType?

迭代器也是可迭代的吗?

用于 Django 应用程序的 Cython:它会工作吗?

ImportError:无法在 PyQt5 中导入名称QStringList

变量类型注解NameError不一致