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():
    # 私有函数的实现细节
    # ...
posted @ 2023-07-09 22:32  Frank23  阅读(9)  评论(0编辑  收藏  举报