ich spiele gerade etwas mit `rich` und wollte mir nun eine App-Klasse bauen und die soll von `rich.console.Console` erben. Das ist an sich auch kein Problem. Um mit `attrs` fitter zu werden nutze ich das immer gern, wenn ich nichts ernsthaftes programmiere und meine Frage ist nun, ist der Aufruf der `__init__` der Elternklasse so wie im folgenden Minimalbeispiel der einzige und vorgesehene Weg in Verbindung mit `attrs`?
Es geht mir jetzt nicht darum, `super()` zu verwenden (laut eines Blogeintrags, sei das gar nicht so super), sondern ob ich das `__attrs_post_init__` benötige oder ob das irgendwie automagisch auch im Hintergrund funktioniert?
Code: Alles auswählen
#!/usr/bin/env python
from attrs import define, field
from rich.align import Align
from rich.console import Console
BANNER = Align.center(
"[red b]Test",
vertical="middle",
)
@define
class App(Console):
banner = field()
def __attrs_post_init__(self):
Console.__init__(self)
def show_start_screen(self):
self.print(self.banner)
def main():
app = App(BANNER)
app.show_start_screen()
if __name__ == "__main__":
main()
Danke und Grüße
Dennis