我依靠id(obj)来区分项目中的两个对象。但是,由于python的小值缓存,当对象是小整数时,这不起作用。以下两个元素具有相同的ID。
self.a = 0
self.b = 0
# id(self.a) is the same as id(self.b)
有没有办法让id(self.a)与id(self.b)不同但仍保留上面列出的语法?
谢谢!
编辑: 请参阅以下示例
class B:
def __init__(self):
self.b = 0
def eat( self ):
self.b = 0
class A:
def __init__(self):
self.b = B()
self.a = 0
def eat1( self ):
self.a = 0
def eat2( self ):
self.b.b = 0
a = A()
a.b.eat()
a.eat2()
基本上a.b.eat()正在访问与a.eat2()相同的变量,而eat1()正在访问另一个变量。但是,self.b.b和self.a具有相同的id,这使得很难区分它们。