zoukankan      html  css  js  c++  java
  • python学习笔记

    python 中的strings, tuples, 以及numbers都是不可变类型,而list以及dict都是可变类型
    示例module1.py 以及module2.py 从两个方面验证了上述结论。
    首先,所谓不可变类型以及可变类型其实可以理解为值类型引用与引用类型引用。即传递参数的时候,是传递值还是传递引用。函数的作用域就相当于一个闭包,在此作用域内的修改才有效,因此,当函数传参的时候,可变类型传递的都是引用地址,而不可变类型传递的都是值。可变类型的修改就是影响全局,而不可变类型的修改只会影响此函数内的作用域。

    module1.py

    def func(a):
        a = 3
        print("a的原始值{0} 以及a的地址{1}".format(a, id(a)))
    
    
    if __name__ == "__main__":
        a = 1
        print("a的原始值{0} 以及a的地址{1}".format(a, id(a)))
        func(a)
        # a = 2
        print("a的原始值{0} 以及a的地址{1}".format(a, id(a)))

    module2.py

    def func(a):
        a.append(1)
        print("a的原始值{0} 以及a的地址{1}".format(a[0], id(a)))
    
    if __name__ == "__main__":
        a = []
        func(a)
        a.append(2)
        print("a的原始值{0} 以及a的地址{1}".format(a[1], id(a)))

    建议你自己运行看看

  • 相关阅读:
    Centos下 安装和测试kafka
    Java枚举
    Java 数组
    Java变量
    Java标识符
    Java修饰符
    java 基本语法
    Java 基础语法
    Java开发工具
    JAVA 发展历史
  • 原文地址:https://www.cnblogs.com/zhiyong-ITNote/p/8693660.html
Copyright © 2011-2022 走看看