2

オブジェクトの名前を取得し、作成時にオブジェクトとして保存することはできますか? つまり、新しいクラスを作成する場合..

Class foobar():
    pass

そして、言う...

fooinstance = foobar()

作成された foobar タイプのオブジェクトに「fooinstance」という名前を格納する方法はありますか? この動作を実装するために名前を使用できますか?

私が尋ねる理由は、作成されたオブジェクトが、作成者の「誰」を知る必要がある追加のオブジェクトを作成するためです。

4

3 に答える 3

2

あなたはこのようなことをしようとしていますか?

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

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

親または所有者を知る必要がある場合、私は同様のものを使用しました。所有者が存在しない可能性がある場合は、weakrefを使用できます。

于 2012-11-19T05:14:29.427 に答える
2

いいえ、とにかく無意味です。

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

おそらくイニシャライザに設定されたキーを使用して、オブジェクトを識別する別の方法を見つけてください。

于 2012-11-19T04:51:26.537 に答える
1

「誰が」オブジェクトを作成したかを知る必要がある場合は、作成時にその「誰」を渡すだけです。

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

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

オブジェクトが割り当てられる変数の名前は重要ではないことに注意してください。その名前は、オブジェクトがルーチン間で渡されると変わります。それはあなたが気にする実際のインスタンスです。

于 2012-11-19T05:18:48.533 に答える