Zum Beispiel habe ich so etwas wie diese:Overloading und Wickelverfahren des Bereichs der übergeordneten Klasse in Python
class A(object):
def __init__(self):
pass
def foo(self, a, b, c):
return a + b + c
class B(object):
def __init__(self):
self.b = A()
def wrapper_func(func):
def wrapper(self, *args, **kwargs):
return func(self, a=3, *args, **kwargs)
return wrapper
class C(B):
def __init__(self):
pass
@wrapper_func
def ???
Ist es möglich, einige, wie Überlastung und dann wickelt Methode foo
des Feldes der Eltern B
Klasse in Python ohne erbt von Klasse A
? Ich brauche den Wrapper in der Tat, weil ich die verschiedenen Methoden mit den gleichen Argumenten habe, aber gleichzeitig muss ich die ursprünglichen Methoden der Klasse B nativ speichern (neben dem Überladen).
So auf diese Weise Berufung eingewickelt Methode wird so sein 'c.bar (1, 2, 3)', aber ich brauche den gleichen Rufnamen wie 'cbfoo (1, 2, 3)' zu sein. Aber ich denke, das ist nicht möglich ...? – NULL
Warum 'c.b.foo (1, 2, 3)'? Das nennt man nur die 'foo' Methode von' A' –
Yep, im Grunde wird das die 'foo' Methode von' A' heißen, aber ich meine das Überladen und Umbrechen wie 'def b.foo (self): ...' , um das gleiche 'cbfoo()' anstelle eines anderen Namens wie 'c.bar()' aufzurufen. Und das ist nicht möglich, denke ich? – NULL