Login
网站首页 > 文章中心 > 其它

Python_值类型和引用类型有什么区别?_python基本类型和引用类型

作者:小编 更新时间:2023-08-05 07:30:54 浏览量:223人看过

在Python中,函数参数的传递有两种方式:值传递和引用传递.

Python_值类型和引用类型有什么区别?_python基本类型和引用类型-图1

值传递

值传递是指在函数调用时,实参将自己的值传递给形参,形参获得了实参的一个拷贝,这样函数内部对形参的任何改变都不会影响实参本身.在Python中,不可变对象(如数字、字符串、元组等)采用值传递.

下面是一个例子:

def change_num(num):
return num

a = 5
print(change_num(a))  # 输出15
print(a)  # 输出5

引用传递

引用传递是指在函数调用时,实参传递给形参的是它的引用,即实参的地址,这样函数内部对形参的任何修改都会影响实参的值.在Python中,可变对象(如列表、字典等)采用引用传递.

def change_list(list):
return list

a = [1, 2, 3]
print(change_list(a))  # 输出[1, 2, 3, 4]
print(a)  # 输出[1, 2, 3, 4]

需要注意的是,虽然Python的函数参数传递采用的是值传递和引用传递的组合方式,但在函数内部重新给一个可变对象赋值的时候,它就变成了一个新的对象,这时函数内部的变量与外部变量已经没有关联了,所以呢不会影响到外部变量的值.下面是一个例子:

def change_string(s):
s = "Hello, world!"

my_string = "Python"
change_string(my_string)
print(my_string)  # 输出 "Python"

在这个例子中,我们创建了一个名为 my_string 的字符串,并将其作为实参传递给 change_string 函数.函数内部将字符串改变为 Hello, world!.但是,当函数返回后,我们打印 my_string 的值,发现其值仍然是 "Python",这是因为函数参数的传递是按值传递的.

总结

最后提醒一下大家,Python 中的函数参数传递可以归纳为以下两种情况:

对于不可变类型的参数(例如数字、字符串、元组等),函数内部的修改不会影响到函数外部的变量;

对于可变类型的参数(例如列表、字典等),函数内部的修改会影响到函数外部的变量.

以上就是土嘎嘎小编为大家整理的Python_值类型和引用类型有什么区别?相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章