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

    建议你自己运行看看

  • 相关阅读:
    kubernetes_mk_lgg_
    kubernetes_tb宝满
    hcna
    kubernetes_book
    ipset和iptables配合来自动封闭和解封有问题的IP
    microk8s
    iptables
    docker kubernetes Swarm容器编排k8s CICD部署 麦兜
    scala Actor Akka
    数据库——mysql数据类型2
  • 原文地址:https://www.cnblogs.com/zhiyong-ITNote/p/8693660.html
Copyright © 2020-2023  润新知