在上一节我们曾提到,数字、字符串、元组属于不可变数据类型,列表、集合、字典属于可变数据类型。
当函数的参数为不可变数据类型时,参数的传递与C++中的值传递类似。比如:有一个函数func(a),传递的只是a的值,没有影响a对象本身。如果在func(a)内部修改a的值,则是新生成一个a的对象,修改后func外部的a不会受到影响。
def test1(a):
# 输出:66
print(a)
a = 100
# 输出:100
print(a)
a = 66
test1(a)
# 不可变数据类型,仍然输出:66
print(a)
当函数的参数为可变数据类型时,参数的传递与C++中的引用传递类似。比如:有一个函数func(a),传递的是a的地址。如果在func(a)内部修改a的值,修改后func外部的a也会受到影响。
def test1(a):
# 输出:['C', 'S', 'D']
print(a)
a.append('N')
# 输出:['C', 'S', 'D', 'N']
print(a)
a = ['C', 'S', 'D']
test1(a)
# 可变数据类型,输出:['C', 'S', 'D', 'N']
print(a)
函数的参数主要有五种不同的类型:必需参数、默认参数、不定长参数、强制关键字参数、强制位置参数,下面分别进行介绍。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/hope_wisdom/article/details/132417650