我正在使用以下代码收集实例:
class Hand():
instances = []
def __init__(self):
Hand.instances.append(self)
self.value = 5
def do_something(self, a):
self.value = self.value * a
class Foo():
def __init__(self):
pass
def insty(self):
self.hand1 = Hand()
self.hand2 = Hand()
foo = Foo()
foo.insty()
print Hand.instances
for hand in Hand.instances:
print "how do I print the instance name?"
最后一行只是学习如何访问实例名称的方法,因此我可以按顺序在每个实例上调用’do_something’方法.
如何访问Hand的每个实例的实例名称?
最佳答案 如果你的意思是如何从你分配给self.hand1的实例中获取hand1,答案就是你不能.当你执行self.hand1 = Hand()时,你告诉Foo对象它有一个Hand,但是Hand对象不知道它已被分配给Foo.你可以这样做:
h = Hand()
self.bob = h
self.larry = h
那个手应该是什么“名称”?你将同一只手分配给“bob”和“larry”,所以它无法拥有一个唯一的名称.
如果你想为每只手都有一个名字,你需要告诉你想要给它的名字.您必须修改Hand代码以允许您将名称传递给构造函数,然后创建Hand with Hand(“some name”).
你当然可以通过为它们分配属性给手“名字”:
self.hand1 = Hand()
self.hand1.name = "hand 1"
. . .但这些名字并不是特殊的或“自动的”.
最重要的是,如果您想要某个名称,您需要决定如何处理该名称.您需要编写自己的代码,为其命名,并使用您自己的代码来检索其名称.