python - 确定是否传递了命名参数

标签 python default-value named-parameters

我想知道是否可以确定在 Python 中是否传递了具有默认值的函数参数。 例如,dict.pop 是如何工作的?

>>> {}.pop('test')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'pop(): dictionary is empty'
>>> {}.pop('test',None)
>>> {}.pop('test',3)
3
>>> {}.pop('test',NotImplemented)
NotImplemented

pop方法如何判断第一次没有传递默认返回值?这是只能在 C 中完成的事情吗?

谢谢

最佳答案

惯例通常是使用arg=None和使用

def foo(arg=None):
    if arg is None:
        arg = "default value"
        # other stuff
    # ...

检查是否通过。允许用户传递 None,这将被解释为参数传递。

关于python - 确定是否传递了命名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/255429/

相关文章:

python - Oauth2 身份验证 token 包含 Azure 应用程序 ID 的 OID,而不是用户 ID

python - 在 map 内联(Jupyter)上绘制坐标的最快方法是什么?

python - 如何在python中的hadoop流中实现计数器

php - 将元素添加到具有间隙数字键的数组以形成索引数组/列表

c# - 在哪里设置自定义控件默认值

Python - 如何使用 MNIST 预测不同形状的 np.darray

mysql - 为什么文本列在 MySQL 中不能有默认值?

python - 如何使用 [] 作为 python 中命名函数参数的默认值?

c# - 方法签名中的命名参数

java - NamedParameterJdbctemplate 的获取大小?