zoukankan      html  css  js  c++  java
  • 1内存地址

    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))
    

    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)函数内部只能对内部原始修改,

    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]
    

    **2. python函数不像其他语言,函数会新开辟空间 **

    3. 函数外面调函数, 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)
    

    4. 如果函数内是字符串和43243143341432143数字外面调用,内存地址相同.

    def func ():
        data = 123456
        print(id(data))     
        return data
    
    v1 = func()
    print(id(v1))          
    
    v2 = func()
    print(id(v2))
    

  • 相关阅读:
    teamviewer被识别为商用的解决办法
    PLY调试笔记——待解决的问题
    python中的反射
    类的继承顺序
    面向对象---继承
    类成名和命名空间
    面向对象编程
    模块的初始
    装饰器
    列表推导式,生成器
  • 原文地址:https://www.cnblogs.com/john5yang/p/15570610.html
Copyright © 2011-2022 走看看