分享

UC头条:python之函数的参数传递(引用传递和值传递),查看变量的内存地址的方法

 cnzrp 2023-10-11 发布于山西

函数的参数传递

可变对象和不可变对象:

不可变对象(number,string,tuple):”引用传递“,该对象的值不能发生改变。

数据类举例:

defadd(num):num=num+2returnnumnumber1=10number2=add(number1)#number1作为实参引用传递,该变量的值本身没有发生变化print(number1)print(number2)

字符串类型举例:

defadd(num):num=num+'world'returnnumstring='hello'string2=add(string)#string作为实参引用传递,该变量的值本身没有发生变化print(string)#函数调用后原字符串的值没有改变print(string2)

hellohelloworld

元组类型举例:

defadd(num):num=num+(1,5,6)returnnumtuple1=(12,23,45)tuple2=add(tuple1)#tuple1作为实参引用传递,该变量的值本身没有发生变化print(tuple1)print(tuple2)

(12,23,45)(12,23,45,1,5,6)

可变对象(字典,列表,集合):“值传递”,该对象的值会发生变化。

列表为例:

defchange(num):num.append(0)li=[]#定义一个空列表liprint(li)change(li)#把li作为实参传递到函数体,传递过去变量值print(li)#列表li的值已经发生变化

[][0]

字典为例:

defdict_s(dict1):dict1['color']='red'dict1={'名称':'太阳'}print(dict1)dict_s(dict1)print(dict1)

集合为例:

defset(set1):set1.add('python')set1={'hello','world'}print(set1)set(set1)print(set1)

查看变量内存地址:

为了提高内存利用效率,对于不大于256的整数,python会将具有相同值的整数对象给予相同的内存地址

举例:

a,b=10,20print(id(a),id(b))#变量值相同,内存相同,即使变量名不相同a=b=10print(id(a),id(b))c=50print(id(c))b=cprint(id(b),id(c))

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多