经常会在python中用到‘*’和‘**’,这不同于C/C++中的指针。在学习Django的时候学习了*和**的区别。
*和**在python中有特殊的含义,它们都和函数有关但是在函数调用和函数声明时却有着不同的行为。且在此,不同于c/c++
中的指针。
一般来说,无论在函数还是在声明,单个*号表示元组(列表)出现,而两个星号则代表字典。
A:函数调用里面的*和**
def check_web_server(host,port,path):用check_web_server('127.0.0.1',8000,'/admin')即可调用这个函数,但是当这些信息出现在三元组里面的时候,可以如下调用。
check_web_server(*host_info)**用法和*类似,只是用在字典的地方
如:
host_info={'host':'www.python.com', 'port':80,'path':'/'}
check_web_server(**host_info)
类似于:
check_web_server(host='www.python.com', port=80,path='/')
B:函数签名里面的*和**
它们让python得以支持变长参数。
def daily_sales_total(*all_sales):
total=0.0
for each in all_sales:
total+=float(each_sale)
return total
下面的调用都是合法的:
daily_sales_total()
daily_sales_total(10.0)
daily_sales_total(5.0,30.0)
本文详细介绍了Python中*和**符号的特殊用途,包括它们在函数调用及声明中的不同表现形式,并通过实例展示了如何使用这些符号来传递列表和字典类型的参数。
2068

被折叠的 条评论
为什么被折叠?



