*和**有很多用途:
- (* )是乘法运算符(或者在字符串的情况下是重复运算符)。其他库中的类可能出于其他原因使用’*’,但几乎总是以某种形式乘法。
- (**)是一个指数运算符,在正常数字中是计算的数学方法x ** yXÿ
但这些都是不足为奇的用法 - 每个开发人员都可能知道的用法; 但我认为问题几乎肯定与常见但最不期望的地方有关(至少对于初学者来说):
函数中的变量参数
运算符*和**出现在函数定义中 - 例如:
def func (* args ,** kwargs ):
print(args ,kwargs )
要了解它们的作用,您需要了解位置和关键字参数。
函数的关键字参数是最容易解释的,因为传递给表单中函数的任何参数都是关键字参数。接下来,位置参数是函数调用的所有参数,而不是关键字参数。 <argument_name>=
回到我们的函数定义(如上所述)是将所有位置参数收集到单个元组(被调用)中的指令,并且是将所有关键字参数一起收集到一个名为的单个字典中的指令。名称和常见约定 - 您可以将它们称为任何您想要的。*argsargs**kwargskwargsargskwargs
调用此函数的一个示例是:
>>> FUNC (1 ,2 ,3 ,一个= 4 ,b = 5 ,C ^ = 6 )
(1 &