3

タイトルが少しおかしいのかもしれませんが、Python で同じクラス内にクラスのインスタンスを作成する方法はありますか?

このようなもの:

class Foo:
    foo = Foo()

インタープリターが Foo が宣言されていないと言っていることは知っていますが、これを達成する方法はありますか?

アップデート:

これは私がやろうとしていることです:

class NPByteRange (Structure): 
    _fields_ = [ ('offset', int32), 
                 ('lenght', uint32), 
                 ('next', POINTER(NPByteRange)) ]
4

1 に答える 1

4

Fooインタープリターは、が宣言されていないコンテキストで実行しようとした場合にのみ気にします。それがある文脈があります。最も単純な例は、メソッドにあります。

>>> class Beer(object):
...   def have_another(self):
...     return Beer()
... 
>>> x=Beer()
>>> x.have_another()
<__main__.Beer object at 0x10052e390>

オブジェクトがプロパティであることが重要な場合は、propertyビルトインを使用できます。

>>> class Beer(object):
...   @property
...   def another(self):
...     return Beer()
... 
>>> guinness=Beer()
>>> guinness.another
<__main__.Beer object at 0x10052e610>

最後に、クラスプロパティであることが本当に必要な場合は、それも可能です

于 2012-05-30T20:18:47.277 に答える