python学习笔记

2018-06-18 02:11:42来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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

建议你自己运行看看

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:python数据类型之集合

下一篇:Python 全栈开发:python的推导式(列表推导式、字典推导式、集