Ie, wenn ich eine Klasse MyClass habe, und ich super (MyClass). init, wie kann ich sagen, welche Klasse init wird eigentlich aufgerufen werden?In Python, wie kann ich sagen, welche Klasse ein Superobjekt einwickelt?
Einige Code zu veranschaulichen:
class MyClass(OtherClass, ThirdClass):
def __init__(self):
mySuper = super(MyClass)
if mySuper == SomeClass:
# doesn't work - mySuper is a super object (not a normal class object)
pass
if mySuper.__init__ == SomeClass.__init__:
# doesn't work - mySuper.__init__ is a super-method-wrapper object
pass
if mySuper.__thisclass__ == SomeClass:
# doesn't work - __thisclass__ is set to be MyClass, not the "parent" class
pass
Irgendwelche Ideen?
Wenn Sie Mehrfachvererbung verwenden, können Sie '* args' und' ** kwargs' an die Superklasse ''__init__' übergeben, die die gewünschten Argumente extrahieren kann (indem Sie sie als Argumente benennen). ** Warum ** würdest du das machen wollen? – Darthfett