methode nachtraeglich eienr klasse hinzufuegen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

methode nachtraeglich eienr klasse hinzufuegen

Beitragvon Costi » Freitag 23. Februar 2007, 23:01

halo allerseits

wie kann ich den einer klasse (noch besser waere einer instantz) nach ihrer definierung noch ein paar methoedchen anhaengen?


danke
cp != mv
Benutzeravatar
mq
User
Beiträge: 124
Registriert: Samstag 1. Januar 2005, 19:14

Beitragvon mq » Freitag 23. Februar 2007, 23:10

Code: Alles auswählen

class Foo:
    pass

def bar(self):
    print 42

def baz():
    print 23


f = Foo()
Foo.bar = bar
f.baz = baz

f.bar()
f.baz()
BlackJack

Beitragvon BlackJack » Freitag 23. Februar 2007, 23:15

Bei Klassen: einfach tun, ansonsten `new.instancemethod()` um gebundene Methoden zu erzeugen.

Code: Alles auswählen

In [31]: class A(object):
   ....:     def __init__(self, value):
   ....:         self.value = value
   ....:

In [32]: a = A(42)

In [33]: def method_a(self):
   ....:     print self.value
   ....:

In [34]: A.spam = method_a

In [35]: a.spam()
42

In [36]: def method_b(self, other):
   ....:     print self.value * other
   ....:

In [37]: a.ham = new.instancemethod(method_b, a, A)

In [38]: a.ham(23)
966
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

Beitragvon Costi » Freitag 23. Februar 2007, 23:18

fett!

und ich dachte das wuerde darauf hinauslaufen, dass ich die klasse als string speichern mueste und dan halt methoden manuel addieren und eval()n
:D :D :D :D
cp != mv

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder