在实例化期间获取对象名称

2024-09-24 22:32:17 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有可能获取一个对象的名称并在创建时将其存储为一个对象?i、 如果我要创建一个新类。。你知道吗

Class foobar():
    pass

然后说。。。你知道吗

fooinstance = foobar()

有没有办法将名称“fooinstance”存储在foobar类型的已创建对象中?是否可以使用名称来实现此行为?你知道吗

我问的原因是,创建的对象将创建其他对象,这些对象需要知道它们是由谁创建的。你知道吗


Tags: 对象名称类型原因passclassfoobar创建对象
3条回答

你想做这样的事?你知道吗

class Player(object):     
    # ... snip ...

    def fire(self):
        bullet = Bullet()
        bullet.owner = self
        bullet_list.append(bullet)

我也用过类似的方法,当你需要了解父母或主人的时候。如果所有者可能不存在,您可以使用weakref。你知道吗

不,不管怎样都没有意义。你知道吗

fooinstance = foobar()
bar = fooinstance
print bar.__name__

找到另一种方法来标识对象,也许可以在初始值设定项中设置一个键。你知道吗

如果您需要知道“谁”创建了一个对象,那么只需在创建时传入该“谁”:

class Foo():
  def __init__(self,whichbar):
    do something with whichbar

class Bar():
  def something(self):
    myfoo = Foo(self)

请注意,对象分配给的变量的名称无关紧要,因为对象在例程之间传递时名称会发生变化。这是你关心的实际情况。你知道吗

相关问题 更多 >