gpt4 book ai didi

Python:如何引用实例名称?

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:25 24 4
gpt4 key购买 nike

我正在使用以下代码收集实例:

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("some name") 创建 Hand。

您当然可以通过为它们分配属性来为它们命名:

self.hand1 = Hand()
self.hand1.name = "hand 1"

. . .但这些名称在任何方面都不是特殊的或“自动的”。

底线是,如果您希望某物有名称,需要决定如何处理该名称。您需要编写自己的代码来为其命名,并编写自己的代码来检索其名称。

关于Python:如何引用实例名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com