Python 无关键字参数
在Python中(假设函数参数的默认值为Python 无关键字参数,python,Python,在Python中(假设函数参数的默认值为None), 传入关键字参数 (调用函数时)是否为无,并且根本不传递它 我只是想确保两者之间没有细微的语义差异 我特别是在谈论这个问题 和p0参数。如果不传递任何内容,该值将更改为指定的默认值。如果传递None,则它将不使用默认值 def foo(bar='foobar'): print(bar) foo() foo(bar=None) 产出: foobar None 有一个很大的区别: def f(x=3): print(x) d
None
),传入关键字参数
(调用函数时)是否为
无
,并且根本不传递它
我只是想确保两者之间没有细微的语义差异
我特别是在谈论这个问题
和
p0
参数。如果不传递任何内容,该值将更改为指定的默认值。如果传递None,则它将不使用默认值
def foo(bar='foobar'):
print(bar)
foo()
foo(bar=None)
产出:
foobar
None
有一个很大的区别:
def f(x=3):
print(x)
def g():
print("OK")
def h(x):
print(x)
f()
输出3
,而f(无)
输出None
g()
输出OK
,而g(None)
产生TypeError
h()
引发TypeError
,而h(None)
输出None
简而言之,使用
None
表示语义缺失,而不是语法缺失。假设您需要函数中的键
参数
如果不传递key
参数,您将无法在关键字参数({keyrerror`)中访问key
如果将
key
作为None
传递,则关键字参数中key的值将为None`。这取决于函数的声明方式。“None关键字用于定义空值,或者根本没有值。”这是否回答了您的问题?这是您的问题吗“如果None已经是参数的默认值,那么我将None作为参数传递会有区别吗?”"是的,p0
如果你传入或不传入它,它将是None
,因为函数签名中的默认值是None
。谢谢。但是第二个例子不是我想的。函数确实有一些参数,例如p0
,我说的不是pa用None
值传递或传递它。第二个示例演示了在没有参数的情况下传递None
是错误的。类似地(以及我应该在答案中添加的内容)如果期望参数没有默认值,则不传递值是错误的。感谢3个场景中的详细信息…我想这就是我需要的解释。