就内存地址而言分为两种情况:
- 不可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变。(整数、字符串和元组)
- 可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变。(列表和字典)
- new方法用于操作不可变对象,new方法可以在init方法之前执行
class MyInt(int):
def __new__(cls,val,name):
instance = super().__new__(cls,val)
instance.val = val
instance.name = name
return instance
myint = MyInt(123,"fish")
print(myint)
print(myint.name)