栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

函数的参数传递 可变对象和不可变对象:

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

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

字符串类型举例:

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

元组类型举例:

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

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

列表为例:

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

字典为例:

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

集合为例:

def set(set1):
    set1.add("python")
set1={"hello","world"}
print(set1)
set(set1)
print(set1)
{'world', 'hello'}
{'world', 'hello', 'python'}
查看变量内存地址:

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

a,b=10,20
print(id(a),id(b))#变量值相同,内存相同,即使变量名不相同
a=b=10
print(id(a),id(b))
c=50
print(id(c))
b=c
print(id(b),id(c))
140731941263296 140731941263616
140731941263296 140731941263296
140731941264576
140731941264576 140731941264576
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000695.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号