我使用以下代码收集实例:
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 实例的实例名称?
如果你的意思是如何获得hand1
从您分配给的实例self.hand1
,答案是不能。当你这样做时self.hand1 = Hand()
,您告诉 Foo 对象它有一个 Hand,但 Hand 对象不知道它已被分配给 Foo。你可以这样做:
h = Hand()
self.bob = h
self.larry = h
现在那只手的“名字”应该是什么?您将同一只手分配给“bob”和“larry”,因此它不可能有一个唯一的名称。
如果你想给每只手起一个名字,你需要告诉这只手你想给它起什么名字。您必须修改 Hand 代码以允许将名称传递给构造函数,然后使用以下命令创建 HandHand("some name")
.
当然,您可以通过为双手分配属性来给双手“命名”:
self.hand1 = Hand()
self.hand1.name = "hand 1"
。 。 。但这些名称无论如何都不是特殊的或“自动的”。
最重要的是,如果你想让某个东西有一个名字,you需要决定如何处理该名称。您需要编写自己的代码来为其提供名称,并编写自己的代码来检索其名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)