Python 函数参数传递方式:位置参数、关键字参数、默认参数、可变参数和强制关键字参数
Python 语言中,可以通过以下几种方法确定在调用时传递的参数:
- 位置参数:按照函数定义时参数的顺序传递参数,例如:
def greet(name, age):
print('Hello, {}! You are {} years old.'.format(name, age))
greet('Alice', 25)
在调用 greet 函数时,将 'Alice' 和 25 作为参数传递给了 name 和 age,因为它们在函数定义中的位置与参数名对应。
- 关键字参数:使用参数名和值的形式传递参数,例如:
def greet(name, age):
print('Hello, {}! You are {} years old.'.format(name, age))
greet(age=25, name='Alice')
在调用 greet 函数时,使用了关键字参数 age=25 和 name='Alice',它们的顺序与函数定义时的位置无关。
- 默认参数:在函数定义时为参数指定默认值,例如:
def greet(name, age=18):
print('Hello, {}! You are {} years old.'.format(name, age))
greet('Alice')
greet('Bob', 30)
在调用 greet 函数时,如果不传递 age 参数,默认为 18。
- 可变参数:在函数定义时使用
*args或**kwargs来接收可变数量的参数,例如:
def greet(*names):
for name in names:
print('Hello, {}!'.format(name))
greet('Alice', 'Bob', 'Charlie')
在调用 greet 函数时,可以传递任意数量的位置参数,它们将被打包成一个元组 names。
- 强制关键字参数:在函数定义时使用
*来强制使用关键字参数,例如:
def greet(*, name, age):
print('Hello, {}! You are {} years old.'.format(name, age))
greet(name='Alice', age=25)
在调用 greet 函数时,必须使用关键字参数 name 和 age,否则将抛出 TypeError 异常。
原文地址: https://www.cveoy.top/t/topic/ntB2 著作权归作者所有。请勿转载和采集!