python中的不定长参数

1. 引言

Python 是一种高级面向对象的编程语言。 Python 中的函数可以接受不定长参数,这是 Python 最常见且最有用的特性之一。在 Python 中,不定长参数可以有两种类型,分别是:*args**kwargs 。 这篇文章将详细介绍这两种类型的不定长参数。

2. *args

2.1 *args的概述

在 Python 中,*args 表示函数接受任意数量的位置参数,并以元组的形式传递给函数。这意味着,如果一个函数的参数列表中有 *args ,那么在函数调用时,您可以传递任意数量的参数。下面是一个简单的例子,可以更好地解释 *args:

def print_args(*args):

print(args)

print_args(1, 2, 3) # (1, 2, 3)

print_args('a', 'b', 'c', 'd') # ('a', 'b', 'c', 'd')

这里定义了一个函数print_args() ,并将 *args 作为其参数之一。 当我们传递一组参数,即使参数的数量不同,这个函数仍然可以正常工作。

2.2 带 *args 的函数例子

下面这个例子,使用 *args 来计算所有参数的总和:

def sum_of_numbers(*args):

sum = 0

for number in args:

sum += number

return sum

print(sum_of_numbers(1, 2, 3)) # 6

print(sum_of_numbers(10, 20, 30, 40)) # 100

在上面的代码中,我们定义了一个名为 sum_of_numbers() 的函数来计算所有参数的总和。在函数内部,我们使用了一个 for循环 来迭代 *args 元组中的所有数字并将它们相加。最后,我们返回这个总和。

3. **kwargs

3.1 **kwargs 的概述

在 Python 中, **kwargs 表示“关键字参数” ,意思是函数可以接受任意数量的关键字参数,并将它们作为字典传递给函数。这意味着,如果一个函数的参数列表中有 **kwargs ,那么在函数调用时,您可以传递任意数量的关键字参数。下面是一个简单的例子,可以更好地解释 **kwargs:

def print_kwargs(**kwargs):

print(kwargs)

print_kwargs(a=1, b=2, c=3) # {'a': 1, 'b': 2, 'c': 3}

这里定义了一个函数print_kwargs() ,并将 **kwargs 作为其参数之一。当我们传递一组关键字参数时,这个函数可以正常工作,并将它们作为字典打印出来。

3.2 带 **kwargs 的函数例子

下面这个例子,使用 **kwargs 来打印所有参数的名称和值:

def print_args_kwargs(*args, **kwargs):

print('Positional arguments:')

for arg in args:

print(arg)

print('Keyword arguments:')

for key, value in kwargs.items():

print(f"{key}: {value}")

print_args_kwargs('One', 'Two', 'Three', name='John', age=30, city='New York')

在上面的代码中,我们定义了一个名为 print_args_kwargs() 的函数,该函数接受不定长参数 *args**kwargs。在函数内部,我们使用两个 for循环 函数来打印所有的参数。第一个循环打印 *args 元组中的所有位置参数,第二个循环用来打印 **kwargs 字典中的所有关键字参数。

4. 总结

通过这篇文章,我们了解了 Python 中的两种不定长参数。 *args 可以接受任意数量的位置参数,并以元组的形式传递给函数。 **kwargs 可以接受任意数量的关键字参数,并以字典的形式传递给函数。使用这些不定长参数,可以使您的代码更加灵活和通用,从而提高代码的可读性和可维护性。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签