Seite 1 von 1

Globale Variable erlaubt?

Verfasst: Dienstag 16. Februar 2021, 09:28
von Domroon
Hallo Leute,

ich beschäftige mich momentan mit SQLAlchemy und beschäftige mich gerade mit Relationships. Beim ausprobieren und durchlesen der Dokumentation bin ich etwas verwirrt. Es geht um diese Seite: https://docs.sqlalchemy.org/en/14/orm/b ... ships.html

Beim Unterpunkt "Many To Many" wird eine "assocation_table" erstellt. Wieso wird da einfach so eine Variable in der obersten Ebene erstellt? Ich habe gelernt, dass globale Variablen nie eine gute Idee sind. Es kann auch sein, dass ich gerade völlig in die falsche Richtung denke?

Danke euch schonmal :wink:

Re: Globale Variable erlaubt?

Verfasst: Dienstag 16. Februar 2021, 10:16
von __blackjack__
@Domroon: Das ist keine Variable, das ist eine Konstante. Das beschreibt, genau wie die Klassen, die Tabellenstruktur in der Datenbank, die sich zumindest während das Programm läuft nicht ändert.

Re: Globale Variable erlaubt?

Verfasst: Dienstag 16. Februar 2021, 10:31
von Domroon
Okay, das macht Sinn. Nur irgendwie blöd, dass sich die Dokumentation dann nicht an die "stille Vereinbarung" hält alle Konstanten komplett groß zu schreiben... Oder ist das an dieser Stelle wohl extra so gewollt?

Re: Globale Variable erlaubt?

Verfasst: Dienstag 16. Februar 2021, 11:45
von __blackjack__
Das musst Du die Autoren von SQLAlchemy/der Dokumentation fragen. 🤷‍♂️

Re: Globale Variable erlaubt?

Verfasst: Dienstag 16. Februar 2021, 14:36
von DeaD_EyE

Code: Alles auswählen

association_table

ASSOCIATION_TABLE
Beim letzten bekomme ich Augenschmerzen.


Kann sich association_table auch verändern?
Falls ja, ist es keine "Konstante".

Re: Globale Variable erlaubt?

Verfasst: Dienstag 16. Februar 2021, 15:56
von __blackjack__
@DeaD_EyE: Nein, kann sich nicht ändern. Das beschreibt eine Tabelle in der Datenbank.

Re: Globale Variable erlaubt?

Verfasst: Mittwoch 17. Februar 2021, 20:15
von DasIch
Bei SQLAlchemy Tabellen Namen klein zu schreiben hat im wesentlichen drei Gründe:
  • Der Name im Code ist konsistent mit dem Namen in der Datenbank
  • Kleinschreibung ist konsistent mit der SQLAlchemy Dokumentation (und auch allen Projekten dir mir bekannt sind und SQLAlchemy nutzen).
  • Man benutzt die Namen viel häufiger als üblich für Konstanten, vor allem wenn man die expression language benutzt und nicht das ORM. Ständig Großbuchstaben zu nutzen ist jetzt nicht so toll beim tippen.
So ganz PEP 8 konform ist es natürlich nicht allerdings sagt PEP 8 auch A Foolish Consistency is the Hobgoblin of Little Minds, von daher denke ich dass man sich damit auch noch in einem akzeptablem Rahmen bewegt.