小编典典

位置参数与关键字参数

python

基于

位置参数是一个名称,后跟等号(=)和默认值。

关键字参数后跟一个等号和一个给出其默认值的表达式。

def rectangleArea(width, height):
    return width * height

print rectangleArea(width=1, height=2)

问题 >我认为widthheight都是位置参数。那为什么还要用关键字参数语法来调用它呢?


阅读 193

收藏
2021-01-20

共1个答案

小编典典

您引用的文本用于函数的 定义 ,与函数的调用无关。在对该函数的 调用
中,您使用的是“命名参数”功能。您提供的链接质量不是很好,作者似乎对两种不同的事物感到困惑。

Python的引用指的位置和关键字参数仅就到功能(参照呼叫部分5.3.4 Calls)。

当他们在一节中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.

=更改的含义取决于它是在定义中还是在调用中。

在定义中,它将参数标记为可选,并设置默认值。

在调用中,它仅允许您以所需顺序指定哪些参数应为哪些值。

2021-01-20