Ho una struttura simile a questa:chiamata Python oggetto in funzione senza passare la chiamata oggetto
def foobar():
print('FOOBAR!')
class SampleClass:
foo = foobar
def printfunc(self):
self.foo()
Questo non funziona perché la funzione foobar originale non può gestire self
essere passato ad esso - - Non faceva parte di alcuna classe o oggetto per cominciare. Python non mi consente di aggiungere il decoratore @staticmethod
.
Non ho il controllo sulla definizione di foobar
e potrei dover sostituire il valore di foo
in sottoclassi.
Come posso chiamare foo, senza passare l'oggetto chiamandolo?
Sono un po 'confuso. Perché non definire la funzione 'foobar' all'interno di' SampleClass'? – Huey
Perché non solo "def foo (auto): foobar()'? – user2357112
@Huey Perché in questo caso specifico, è * non * qualcosa che posso definire. È un metodo esterno e verrà sovrascritto con un altro metodo esterno in una sottoclasse. –