美文网首页
python引用

python引用

作者: AndroidCat | 来源:发表于2017-04-11 15:05 被阅读0次

引用

  • id() 查看变量的标号
  • 引用的类型
    • 不可变类型(int,long,bool,float,str,tuple)
    • 可变类型(列表、字典)
a = 100
id_ = id(a)
print(id_)
a = 200
id_ = id(a)
print(id_)
# 两个是不一样的,引用了不同的内存地址
# 指向的是一个不可变类型,修改后直接指向另一个常量
nums1 = [11,22,33,44]
num2 = num1
id_ = id(nums1)
print(nums1[0])
nums1[0] = 111;
id_ =id(nums1)
# 没有发生变化
# 指向的是一个可变类型,变量再指向一个常量
#!encoding=utf-8
a = 100
b = a
id_1 = id(a)
id_2 = id(b)
print("id_1 = %d"%id_1)
print("id_2 = %d"%id_2)#相同
print('_'*40)
a = 300 # 300不存在,再内存中创建地址
b = 300 # 上面已经存在了,直接引用
id_1 = id(a)
id_2 = id(b)
print("id_1 = %d"%id_1)
print("id_2 = %d"%id_2)#相同
print('_'*40)
a = 100 # 拿回刚创建的100,虽然在赋值300的时候没有引用,但是还没来得及释放,地址id不变
b = 100
id_1 = id(a)
id_2 = id(b)
print("id_1 = %d"%id_1)
print("id_2 = %d"%id_2)#跟1的内存地址一样       
def test1(num):
    num.append(44)
num = [11,22,33]
test1(num)
print(num)#11,22,33,44
def test2(num):
    num += 1    # 100是常量,加1后创建101内存地址
a = 100
test2(2)
print(a)#100

相关文章

  • python-List

    python赋初值 python 全部清零 python赋值是引用赋值,无引用就回收python与Java一样,不...

  • 深拷贝、浅拷贝

    一、python引用 python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用...

  • Python精简学习(八)

    Python精简学习之函数引用-函数引用

  • python学习一

    1 python 如何管理内存 对象引用计数机制,垃圾回收机制,内存池机制 一。对象引用机制 python内部引用...

  • 无标题文章

    #背 **重要** > 引用 ```python

  • Python是如何进行内存管理的

    Python引入了一个机制:引用计数。 python内部使用引用计数,来保持追踪内存中的对象,Python内部记录...

  • python是如何进行内存管理的

    Python引入了一个机制:引用计数。 python内部使用引用计数,来保持追踪内存中的对象,Python内部记录...

  • python引用

    引用 id() 查看变量的标号 引用的类型不可变类型(int,long,bool,float,str,tuple)...

  • Python引用

    https://blog.csdn.net/heminhao/article/details/73188584ht...

  • python list里面包含dict进行去重

    list里面包含dict进行去重 python3需要引用包,python2不需要引用

网友评论

      本文标题:python引用

      本文链接:https://www.haomeiwen.com/subject/gptuattx.html