|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
学习了小甲鱼老师的零基础入门学习python第041讲:魔法方法:构造和析构,如果继承String,同时 要进行一些改动的时候要重写__new__方法而不是__init__方法。现在有个疑问,就是为什么String就不可以变呢?
字符串str属于Python中的不可变数据类型,str实例对象没有改变自身的方法,只能通过重新赋值来获得另一个字符串,但重新赋值后就变成另一个实例对象了,已不是原来的对象。
不可变数据类型例:
- >>> string = "abc"
- >>> id(string)
- 24572832
- >>> string = string + "d"
- >>> string
- 'abcd'
- >>> id(string) # string已不是原来的string,ID已变
- 63917568
- >>>
复制代码
可变数据类型例:
- >>> lst = [1]
- >>> id(lst)
- 64206808
- >>> lst.append(2) # 使用list实例对象的append方法来改变其自身
- >>> lst
- [1, 2]
- >>> id(lst) # ID相同,此时lst还是原来的lst,但其值发生了变化
- 64206808
- >>>
复制代码
|
|