zoukankan      html  css  js  c++  java
  • 52.引用(一)

    引用(一)

    想一想

    >>> a = 1
    >>> b = a
    >>> b
    1
    >>> a = 2
    >>> a
    2
    请问此时b的值为多少?
    >>> a = [1, 2]
    >>> b = a
    >>> b
    [1, 2]
    >>> a.append(3)
    >>> a
    [1, 2, 3]
    请问此时b的值又是多少?

    引用

    在python中,值是靠引用来传递来的。

    我们可以用id()来判断两个变量是否为同一个值的引用。 我们可以将id值理解为那块内存的地址标示。

    >>> a = 1
    >>> b = a
    >>> id(a) 
    13033816
    >>> id(b)   # 注意两个变量的id值相同
    13033816
    >>> a = 2
    >>> id(a)   # 注意a的id值已经变了
    13033792
    >>> id(b)   # b的id值依旧
    13033816
    >>> a = [1, 2]
    >>> b = a
    >>> id(a)
    139935018544808
    >>> id(b)
    139935018544808
    >>> a.append(3)
    >>> a
    [1, 2, 3]
    >>> id(a)
    139935018544808
    >>> id(b)       # 注意a与b始终指向同一个地址
    139935018544808

    总结:

    • 之前为了更好的理解变量,咱们可以把a=100理解为变量a中存放了100,事实上变量a存储是100的引用(可理解为在内存中的一个编号)

    例子1:

    # 其实变量保存的不是数据 是引用
    # id函数 查看一个变量或者数据的 内存地址
    # 不可变的数据类型int
    # # 定义一个全局变量
    a = 10
    b = a
    # # 使用id可以查看变量保存的引用数据的地址(内存地址)
    # # id类似于宾馆的门牌号
    print(id(a))
    print(id(b))
    # # 对变量b进行重新赋值
    b = 20
    # a = 10 b = 20
    print(a)
    print(b)
    print(id(a))
    print(id(b))

    例子2:

    # 可变的数据类型list
    a = [1, 2]
    b = a
    print(id(a))
    print(id(b))
    # 向b中追加数据
    # 对原来的数据进行修改
    # b.append(3)
    # 重新赋值(重新开辟内存空间保存数据)
    # b = [1, 2, 3]
    print(a)
    print(b)
    print(id(a))
    print(id(b))
  • 相关阅读:
    hide the navigationBar and tabBar
    js
    CATranstion动画
    CASpringAnimation
    UIImageView动画
    打电话发短信
    页面滑动悬停在某个控件(两种做法)
    导航栏相关设置
    ASCII和16进制
    C++中,申请字符串数组可用new实现
  • 原文地址:https://www.cnblogs.com/kangwenju/p/12840144.html
Copyright © 2011-2022 走看看