标签:v1 v2 func print 内存地址 data id
v1 = "tom"
print(id(v1)) #1972976791472
v2 = "你好"
v3 = "你好"
print(id(v2))
print(id(v3))
v4 = [1,2,3]
v5 = v4
print(id(v4))
print(id(v5))
-
函数的参数data 和函数外面的v1引用的是同一内存地址
def func (data):
print(id(data)) #1775314579376
v1 = "tom"
print(id(v1)) #1775314579376
func(v1)
- 案例:1
这个特性,可以利用函数帮助处理data_list这个列表
注意:可以使用这个功能的限制
1)参数必须是可变类型: list/dict/set
2)函数外面的数据类型也要是list/dict/set可变的,内外要对应
3)函数内部只能对内部原始修改,
def func(data):
data.append(5)
print(data, id(data)) #[1, 2, 3, 5] 2146680692992
data_list = [1,2,3]
func(data_list)
print(data_list) #[1, 2, 3, 5]
- python函数不像其他语言,函数会新开辟空间
- 函数外面调函数, v1 和v2 各有各的内存地址
def func ():
data = [1,2,3]
print(id(data)) #v1: 2134267787072 #v2:1817227167552
return data
v1 = func()
print(id(v1)) #v1: 2134267787072 #v2:1817227167552
v2 = func()
print(id(v2)
- 如果函数内是字符串和43243143341432143数字外面调用,内存地址相同.
def func ():
data = 123456
print(id(data))
return data
v1 = func()
print(id(v1))
v2 = func()
print(id(v2))
标签:v1,v2,func,print,内存地址,data,id 来源: https://www.cnblogs.com/john5yang/p/15570610.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。