Python 函数参数分为以下几种类型:
- 位置参数(Positional Arguments):按照函数定义时的位置,依次传递实参,参数个数和参数位置必须一一对应。
例如,下面的代码定义了一个求和函数 add(),通过两个位置参数 a 和 b 来计算它们的和。
def add(a, b):
return a + b
调用该函数时,需要按照定义的位置参数顺序传递两个参数:
sum = add(3, 4)
print(sum) # 输出 7
- 关键字参数(Keyword Arguments):根据参数名来指定传递的实参,参数顺序可以任意。
例如,下面的代码定义了一个函数 print_person_info(),通过关键字参数来输出一个人的信息。
def print_person_info(name, age, gender):
print("My name is {}, I'm {} years old, and my gender is {}.".format(name, age, gender))
调用该函数时,可以使用参数名来指定每个实参的值,不必按照位置顺序传递:
print_person_info(name="Alice", age=20, gender="Female")
print_person_info(gender="Male", name="Bob", age=25)
输出:
My name is Alice, I'm 20 years old, and my gender is Female.
My name is Bob, I'm 25 years old, and my gender is Male.
- 默认参数(Default Arguments):在函数定义时指定的参数默认值,在调用函数时可以不传递该参数,如果没有传递该参数,则使用默认值。
例如,下面的代码定义了一个函数 greet(),通过默认参数来向指定的人员打招呼。
def greet(name, greeting="Hello"):
print("{} {}!".format(greeting, name))
调用该函数时,如果不指定 greeting 参数,则默认使用 “Hello” 打招呼:
greet("Alice")
greet("Bob", "Hi")
输出:
Hello Alice!
Hi Bob!
- 可变位置参数(Variable Positional Arguments):一个函数可以接受任意数量的位置参数,这些参数会被封装成一个元组。
例如,下面的代码定义了一个函数 print_args(),可以接受任意数量的位置参数。
def print_args(*args):
print(args)
调用该函数时,可以传递任意数量的位置参数:
print_args(1, 2, 3)
print_args("a", "b", "c", "d")
输出:
(1, 2, 3)
('a', 'b', 'c', 'd')
- 可变关键字参数(Variable Keyword Arguments):一个函数可以接受任意数量的关键字参数,这些参数会被封装成一个字典。
例如,下面的代码定义了一个函数 print_kwargs(),可以接受任意数量的关键字参数。
def print_kwargs(**kwargs):
print(kwargs)
调用该函数时,可以传递任意数量的关键字参数:
print_kwargs(a=1, b=2)
print_kwargs(name="Alice", age=20, gender="Female")
输出:
{'a': 1, 'b': 2}
{'name': 'Alice', 'age': 20, 'gender': 'Female'}
以上就是 Python 函数参数的种类,希望能帮助你更好地理解函数的使用。