1内存地址

1内存地址

v1 = "tom"
print(id(v1))       #1972976791472

v2 = "你好"
v3 = "你好"
print(id(v2))       
print(id(v3))

1内存地址

v4 = [1,2,3]
v5 = v4
print(id(v4))
print(id(v5))

1内存地址

  1. 函数的参数data 和函数外面的v1引用的是同一内存地址

def func (data):
    print(id(data))     #1775314579376

v1 = "tom"
print(id(v1))           #1775314579376
func(v1)
  1. 案例:1
    这个特性,可以利用函数帮助处理data_list这个列表
    注意:可以使用这个功能的限制
    1)参数必须是可变类型: list/dict/set
    2)函数外面的数据类型也要是list/dict/set可变的,内外要对应
    3)函数内部只能对内部原始修改,
    1内存地址
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]
  1. python函数不像其他语言,函数会新开辟空间
    1内存地址
  2. 函数外面调函数, v1 和v2 各有各的内存地址

1内存地址
1内存地址

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)
  1. 如果函数内是字符串和43243143341432143数字外面调用,内存地址相同.
def func ():
    data = 123456
    print(id(data))     
    return data

v1 = func()
print(id(v1))          

v2 = func()
print(id(v2))

1内存地址

上一篇:记一次通缩代币在uniswap v2的套利


下一篇:c++笔记