python 函数语法
1. 传递副本,防止可变参数被修改
列表是可以修改的,把列表作为参数传给函数,如果在函数中对列表进行了修改,那么这个列表就发生了改变。
为了防止函数修改列表,我们可以使用切片表示法[:]创建列表的副本,将列表的副本作为函数参数
def function_name(list_name[:]):
# 函数体
# 具体示例
def show_magicians(magicians):
for magician in magicians:
print("hello " + str(magician))
def make_great(magicians, changed_magicians):
while magicians:
changed_magician = "the Great " + magicians.pop()
changed_magicians.append(changed_magician)
magicians = ['mike','hellen']
changed_magicians = []
# 若不用切片法创建magician的副本,则make_great调用结束后magician将为空
# make_great(magicians,changed_magicians)
# show_magicians(magicians)
# show_magicians(changed_magicians)
make_great(magicians[:],changed_magicians)
show_magicians(magicians)
show_magicians(changed_magicians)
2. 传递任意数量的实参
使用形参*tuple_name,创建一个元组tuple接受任意数量的实参
该形参必须放在函数的参数列表的最后,因为个数不确定
def make_pizza(size,*toppings):
print("size = " + str(size))
pirnt(toppings)
make_pizza(12,'mushrooms','peppers','cheese')
3. 关于_的约定
在函数名、属性名前加下划线_,表示该函数、属性是私有的,不能直接访问
def _helper_function():
# 私有函数的实现细节
# ...