基于此
位置参数是一个名称,后跟等号(=)和默认值。 关键字参数后跟一个等号和一个给出其默认值的表达式。
位置参数是一个名称,后跟等号(=)和默认值。
关键字参数后跟一个等号和一个给出其默认值的表达式。
def rectangleArea(width, height): return width * height print rectangleArea(width=1, height=2)
问题 >我认为width和height都是位置参数。那为什么还要用关键字参数语法来调用它呢?
width
height
您引用的文本用于函数的 定义 ,与函数的调用无关。在对该函数的 调用 中,您使用的是“命名参数”功能。您提供的链接质量不是很好,作者似乎对两种不同的事物感到困惑。
Python的引用指的位置和关键字参数仅就到功能(参照呼叫部分5.3.4 Calls)。
5.3.4 Calls
当他们在一节中7.6 Function definitions讨论函数的定义时,它是完全不同的术语“默认参数值”。
7.6 Function definitions
我怀疑把这些课件放在一起的人对Python并不 完全 熟悉:-)
作为示例,请参考以下定义和调用:
def fn (a, b, c = 1): # a/b required, c optional. return a * b + c print fn (1, 2) # returns 3, positional and default. print fn (1, 2, 3) # returns 5, positional. print fn (c = 5, b = 2, a = 2) # returns 9, named. print fn (b = 2, a = 2) # returns 5, named and default. print fn (5, c = 2, b = 1) # returns 7, positional and named. print fn (8, b = 0) # returns 1, positional, named and default.
=更改的含义取决于它是在定义中还是在调用中。
=
在定义中,它将参数标记为可选,并设置默认值。
在调用中,它仅允许您以所需顺序指定哪些参数应为哪些值。