googleapis / googleapis/google-cloud-python

Model doesn't call `super.__init_`

Offen
#15,833 3 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @daniel-sanche Auf GitHub ansehen
api: datastore api: ndb priority: p3 type: bug
Vorherrschende Sprache
Python
Sterne
5.4k
Forks
1.8k
Ø Merge
3 T. 4 Std.
Gemergte PRs (30 T.)
122

Beschreibung

Hi all! Is there a reason that `Model.__init__` doesn't call `super().__init__`? I get that it takes all of the kwargs, but not calling `super().__init__` at all breaks multiple inheritance. Eg instantiating this class will never call `Other.__init__`:

```py
class Foo(ndb.Model, Other):
pass
```

If I add `super().__init__()` at the top of `Model.__init__`, that fixes this, and `Other.__init__` gets called correctly.

I can work around this by always putting other classes before `ndb.Model` in the inheritance list, but that's brittle and error-prone, and not documented.

Thanks in advance!

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.