470,811 Members | 1,154 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,811 developers. It's quick & easy.

Dlaczego ten destruktor nie dziala

Mam klase A po ktorej dziedziczy B i jesli w destruktorze klasy B
wywolam:
self.__class__.__bases__[0].__del__(self)

to wszytkos jest ok, i destruktor klasy a jest wywolywany, jesli
natomiast napisze: A.__del__(self) to otrzymuje nastepujacy wyjatek:
Exception exceptions.AttributeError: "'NoneType' object has no
attribute '__del__'" in <bound method B.__del__ of <__main__.B instance
at 0x2b025d04a830>ignored

czemu tak sie dzieje?
Feb 4 '07 #1
4 3079
sorry, wrong group.
Feb 4 '07 #2
alf
Sulsa wrote:
sorry, wrong group.
the group is correct but language wrong, did you find out why the
exception pops up
Feb 6 '07 #3
Sulsa wrote:
Mam klase A po ktorej dziedziczy B i jesli w destruktorze klasy B
wywolam:
self.__class__.__bases__[0].__del__(self)

to wszytkos jest ok, i destruktor klasy a jest wywolywany, jesli
natomiast napisze: A.__del__(self) to otrzymuje nastepujacy wyjatek:
Exception exceptions.AttributeError: "'NoneType' object has no
attribute '__del__'" in <bound method B.__del__ of <__main__.B instance
at 0x2b025d04a830>ignored

czemu tak sie dzieje?
??

Cześć,
Właściewie to nie rozumiem sensu pytania. :)

Ja zrobiłem tak:

class A:
def __del__(self):
print "Delete A"

class B(A):
def __del__(self):
A.__del__(self)
print "Delete B"

potem sworzyłem instancję: InstanceB=B()

potem uruchomiłem destruktory: del(InstanceB) i moim oczom ukazał się
komunikat:

Delete A
Delete B

1) Czy atrybut A.__del__(self) zosatł zdefiniowany przez Ciebie?? Domyślny
nie jest brany pod uwagę. Sprawdziłem.

class A:
pass
class B(A):
def __del__(self):
A.__del__(self)
print "Cośtam"

potem

insta=B()
del(insta) daje Exception exceptions.AttributeError: "class A has no
attribute '__del__'" in <bound method B.__del__ of <__main__.B instance at
0xb7cf20cc>ignored

PS.: Python 2.4.4c1
Feb 6 '07 #4
>self.__class__.__bases__[0].__del__(self)
Swoją drogą to nie masz litości pisząc coś takiego ;)
Feb 6 '07 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by Marcin | last post: by
reply views Thread by Mikolaj J | last post: by
1 post views Thread by schnitzell | last post: by
2 posts views Thread by Tony Johansson | last post: by
2 posts views Thread by yopwojtek | last post: by
reply views Thread by Robert | last post: by
4 posts views Thread by Dariusz Tomon | last post: by
1 post views Thread by vertigo | last post: by
2 posts views Thread by dariusz.sawicki | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.