SORU
16 Kasım 2008, Pazar


Python kendisi silme nesne

Neden bu işe yaramaz? Bir sınıfın bir örneği kendisi silmek yapmaya çalışıyorum.

>>> class A():
    def kill(self):
    	del self


>>> a = A()
>>> a.kill()
>>> a
<__main__.A instance at 0x01F23170>

CEVAP
16 Kasım 2008, Pazar


'öz' sadece bir başvuru nesnesi. 'del öz' silme 'öz' referans yerel ad kill işlevini yerine gerçek bir nesne.

Kendiniz için bu görmek için, bu iki işlevi çalıştırıldığında ne olur: bak

>>> class A():
...     def kill_a(self):
...         print self
...         del self
...     def kill_b(self):
...         del self
...         print self
... 
>>> a = A()
>>> b = A()
>>> a.kill_a()
<__main__.A instance at 0xb771250c>
>>> b.kill_b()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 7, in kill_b
UnboundLocalError: local variable 'self' referenced before assignment

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ModNation Racers H.Q.

    ModNation Ra

    31 Ocak 2010
  • NikkoNantone

    NikkoNantone

    21 Kasım 2011
  • theatre2film

    theatre2film

    12 NİSAN 2006