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

  • Eric Magidson

    Eric Magidso

    4 Ocak 2009
  • Hidden Wolf TV

    Hidden Wolf

    1 EKİM 2009
  • Mark Hyder

    Mark Hyder

    6 EKİM 2011