Python函数的参数-位置参数、默认参数、关键字参数和可变参数。
Python 函数的四种参数:
1. 位置参数
2. 默认参数
3. 关键字参数
4. 可变参数
基本概念
在 Python 函数中,参数是在函数声明中给出的参数,也可以称为“形式参数”。 函数调用时,传递给该函数的参数称为“实际参数”或“实参”。 Python 函数支持四种类型的参数,这四种类型分别是位置参数、默认参数、关键字参数和可变参数。
位置参数
位置参数是在调用函数时传递给函数的参数,这些参数依次在函数声明中列出的,这就是所谓的位置参数。需要注意的是,位置参数是必须的,也就是说必须在函数调用中传递该参数,否则将出现参数错误。
默认参数
默认参数是指在函数声明中指定的默认参数值,如果调用函数时没有提供该参数,则使用默认值。默认参数通常在函数声明中指定,并将其指定为等号右侧的值。
关键字参数
关键字参数可以通过指定参数的名称来传递参数,这是一种不依赖于参数位置的参数传递方式。关键字参数可以混合使用位置参数,这样可以更加直观地指定参数。在传递关键字参数时,需要将参数名和参数值用等号隔开。
可变参数
可变参数可以接受不定数量的参数。在函数声明中指定可变参数时,通常使用星号 (*) 来表示可变参数。在函数调用中,可以传递任意数量的参数,并将其作为元组传递给函数。
位置参数和默认参数
位置参数和默认参数是最常用的参数类型。函数声明的位置参数表示必须传递给函数的参数值,而默认参数则表示在调用函数时可以省略的参数值。在下面的例子中,一个函数有两个位置参数和一个默认参数:
def my_function(p1, p2, p3="default"): pass
在此代码中,my_function() 具有三个参数:p1,p2 和 p3。p1 和 p2 是必需的位置参数,而 p3 是默认参数。在调用函数时,我们可以提供所有三个参数的值,也可以省略 p3,这样它将使用默认值 default。
my_function("a", "b")
my_function("a", "b", "c")
上面的代码将 p1 设置为 "a",将 p2 设置为 "b",并将 p3 设置为默认值 "default"。第二个函数调用省略了 p3 的值,p3 将使用默认值 "c"。需要注意的是,在函数声明中指定默认参数时应该使用不可变对象。
关键字参数
关键字参数具有更好的可读性,并且非常适用于具有多个参数的函数。当使用关键字参数时,可以选择传递所有参数和值,或只传递需要的值。在函数调用中,可以指定参数的名称,这样可以更加明确地指定参数。下面的函数说明了如何使用关键字参数:
def my_function(p1, p2, p3): pass
在此代码中,my_function() 具有三个参数:p1,p2 和 p3。在调用函数时,我们可以通过名称指定每个参数的值:
my_function(p1="a", p2="b", p3="c")
在此代码中,p1 将设置为 "a",p2 将设置为 "b",p3 将设置为 "c"。需要注意的是,关键字参数必须在位置参数之后。
可变参数
在某些情况下,我们可能需要传递可变数量的参数,这就是可变参数。在 Python 中,可以使用一个星号(*)来指示可变数量的参数。在函数声明中,标记为星号的参数将允许函数接收任意数量的参数,这些参数将作为元组传递给函数。下面的函数展示了如何使用可变参数:
def my_function(*args): pass
在此代码中,my_function() 允许接受任意数量的参数,这些参数将作为元组传递给 args。在调用函数时,我们可以传递任意数量的参数值:
my_function("a", "b", "c")
在此代码中,"a"、"b" 和 "c" 都将作为元组值传递给 args。
总结
Python 函数支持四种类型的参数:位置参数、默认参数、关键字参数和可变参数。位置参数和默认参数在函数声明中定义,而关键字参数和可变参数是在函数调用中使用。关键字参数提供了更好的可读性和可读性,而可变参数允许需要接受任意数量的参数的函数。熟练掌握这些参数类型是编写高效 Python 代码的关键。
