Python中的可变函数是指能够修改传入的参数的函数,也被称为支持原址修改的函数。具体来说,可变函数可以在不改变参数地址的情况下修改参数内容,因为它们是直接对参数所在地址的引用进行修改。
如何使用可变函数?
在Python中,可变函数的写法是在函数参数前加上一个星号(*),这个参数就会被当作一个可变函数,允许我们传入任意数量的参数。
同时,Python提供了一些内置的可变函数,如list、set、dict等,来方便我们对列表、集合、字典等可变类型进行修改。
下面是两个代码实例,用来说明可变函数的使用方法:
实例1:
假设我们要编写一个函数,用于给定一个列表中的所有元素加上指定的偏移量,同时返回修改后的列表。
def add_offset(lst, offset):
for i in range(len(lst)):
lst[i] += offset
return lst
# 测试代码
my_list = [1, 2, 3, 4, 5]
result = add_offset(my_list, 10)
print(my_list) # [11, 12, 13, 14, 15]
print(result) # [11, 12, 13, 14, 15]
在这个例子中,我们使用了一个循环遍历给定的列表,然后对每个元素进行加上指定的偏移量的操作。由于列表是一个可变类型,我们可以直接对其进行修改,这样就无需返回新的列表。在最后,函数的返回值为修改后的列表。
实例2:
假设我们有一个字典,其中包含一些人员的信息,现在我们要写一个函数,给其中所有的人员的年龄加上10岁。
def add_age(d, age=10):
for key in d:
d[key]['age'] += age
# 测试代码
people = {'Jack': {'age': 22, 'gender': 'male'},
'Lily': {'age': 25, 'gender': 'female'},
'Tom': {'age': 30, 'gender': 'male'}}
add_age(people) # 给所有人员都加上10岁
# 打印每个人的年龄
for key in people:
print(key, people[key]['age'])
在这个例子中,我们使用了字典中的键值对来存储人员的信息,其中age字段用来存储年龄。我们通过一个循环遍历所有的字典元素,然后对每个元素的年龄age进行加上指定的偏移量的操作。由于字典中元素是可变类型,我们可以直接对其进行修改,这样就无需返回新的字典。最后,我们通过一个循环打印每个人的年龄。