Python函数参数的种类有以下几种:
- 位置参数(Positional Arguments):根据位置顺序传递的参数,也是最常用的参数形式。在定义函数时,需要确定该参数的数量,并以正确的顺序传递,调用函数时必须传入该参数,否则会提示缺少参数错误。
下面是一个示例代码,说明如何定义和调用函数时使用位置参数:
def greet(name, age):
print("Hello, my name is %s and I'm %d years old." % (name, age))
greet("Alice", 25) # 正确调用方式
运行结果为:
Hello, my name is Alice and I'm 25 years old.
- 关键字参数(Keyword Arguments):根据参数名称传递的参数,可以不按照顺序传递。在定义函数时,参数名称需要与调用函数时传入的名称一致。
下面是一个示例代码,说明如何定义和调用函数时使用关键字参数:
def greet(name, age):
print("Hello, my name is %s and I'm %d years old." % (name, age))
greet(age=25, name="Alice") # 调用方式使用关键字参数
运行结果为:
Hello, my name is Alice and I'm 25 years old.
- 默认参数(Default Arguments):在定义函数时可以指定某个参数的默认值,如果调用函数时不传递该参数,则使用默认值。
下面是一个示例代码,说明如何定义和调用函数时使用默认参数:
def greet(name, age=18):
print("Hello, my name is %s and I'm %d years old." % (name, age))
greet("Alice") # 没有传递age参数,使用默认值
greet("Bob", 20) # 如果提供参数,则使用提供的值
运行结果为:
Hello, my name is Alice and I'm 18 years old.
Hello, my name is Bob and I'm 20 years old.
- 可变参数(Variable-length Arguments):在调用函数时可以传递任意数量的参数,可以是一个或多个,使用‘*’表示,该参数在函数内部被转换为元组(tuple)类型。
下面是一个示例代码,说明如何定义和调用函数时使用可变参数:
def greet(*names):
for name in names:
print("Hello, my name is %s." % name)
greet("Alice", "Bob", "Chris") # 调用时传递任意数量的参数
运行结果为:
Hello, my name is Alice.
Hello, my name is Bob.
Hello, my name is Chris.
- 关键字可变参数(Keyword Variable-length Arguments):在调用函数时可以传递任意数量的关键字参数,使用‘**’表示,该参数在函数内部被转换为字典(dict)类型。
下面是一个示例代码,说明如何定义和调用函数时使用关键字可变参数:
def greet(**kwargs):
for key, value in kwargs.items():
print("My %s is %s." % (key, value))
greet(name="Alice", age=25) # 调用时传递任意数量的关键字参数
运行结果为:
My name is Alice.
My age is 25.