Hallo Ihr,
ich möchte in einem Projekt, welches aus mehreren py-Dateien besteht, globale Konstanten zentral definieren. Eine Möglichkeit wäre natürlich, eine Text-Datei zu definieren und diese einzulesen. Gibt es eine elegantere Möglichkeit ?
maksimilian
h-Datei analog zu C ?
Normalerweise macht man das via import.
Da wäre dann einmal die Datei mit den Einstellungen. Nennen wir sie settings.py
Und jetzt der Code der die Daten verwendet
Da wäre dann einmal die Datei mit den Einstellungen. Nennen wir sie settings.py
Code: Alles auswählen
DB_USER = 'me'
DB_PASSWORD = 'geheim'
DB_CONNECTION = ''
Code: Alles auswählen
import settings
print(settings.DB_USER)
-
- User
- Beiträge: 86
- Registriert: Freitag 2. November 2018, 20:59
@ deets, /me
Danke für Eure Antworten. Ich wollte nur wissen, ob es außer dem Modulkonzept eine weitere Möglichkeit gibt. Leider muss man die importierten Settings immer mit dem Namen der Setting-Datei als Präfix versehen. Python ist halt ein anderes Konzept als C.
maksimilian
Danke für Eure Antworten. Ich wollte nur wissen, ob es außer dem Modulkonzept eine weitere Möglichkeit gibt. Leider muss man die importierten Settings immer mit dem Namen der Setting-Datei als Präfix versehen. Python ist halt ein anderes Konzept als C.
maksimilian
-
- User
- Beiträge: 86
- Registriert: Freitag 2. November 2018, 20:59
Nun ja, da muss man abwägen. Entweder für alle im Skript verwendeten Konstanten den Präfix oder entsprechend viele Importanweisungen einfügen. Danke auch für diesen Hinweis
maksimilian
maksimilian
- pillmuncher
- User
- Beiträge: 1530
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
Es geht auch so:maksimilian hat geschrieben: Dienstag 27. November 2018, 10:32... viele Importanweisungen einfügen ...
Code: Alles auswählen
from foo import bar, baz, zig, zag
In specifications, Murphy's Law supersedes Ohm's.
-
- User
- Beiträge: 86
- Registriert: Freitag 2. November 2018, 20:59
Na gut, das ist schon besser. Ich möchte es jetzt dabei bewenden lassen und aus einer Mücke keinen Elefanten machen
Es gibt mit Python sicher gravierendere Probleme (z.B. dieses verdammte Indentation).
maksimilian

maksimilian
Die erzwungenen Einrückungen sehe ich nicht als Fluch, sondern als Segen. Gerade bei simplen Editoren ist es viel einfacher, nur die Einrückungen zu verschieben, wenn man den Code neu strukturiert. Viel besser als Klammerpärchen jedes Mal neu anordnen zu müssen.maksimilian hat geschrieben: Dienstag 27. November 2018, 17:19 Es gibt mit Python sicher gravierendere Probleme (z.B. dieses verdammte Indentation).
- __blackjack__
- User
- Beiträge: 14034
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Was mir bei solchen Aussagen immer ein wenig Angst macht ist wie der Code bei den Leuten wohl aussehen mag, die das als ein so grosses Problem ansehen, denn ich bemerke die erzwungene Einrückung überhaupt nicht, weil ich auch in den Programmiersprachen mit Klammern sauber einrücke (oder der Editor/die IDE macht das eh schon automatisch), weil ich das ja auch selber später immer noch lesen und verstehen möchte.
Das ist also nur wirklich erzwungen wenn man freiwillig nicht sowieso schon einrückt. Einrückung ist dazu da um dem Leser die Code-Struktur zu vermitteln. Im Gegensatz zu vielen anderen Programmiersprachen glaubt halt auch der Compiler dem Programmierer. (Ist ein Zitat von irgendwem
)
Das ist also nur wirklich erzwungen wenn man freiwillig nicht sowieso schon einrückt. Einrückung ist dazu da um dem Leser die Code-Struktur zu vermitteln. Im Gegensatz zu vielen anderen Programmiersprachen glaubt halt auch der Compiler dem Programmierer. (Ist ein Zitat von irgendwem

„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Genau. Weil Einrueckungen so total unwichtig sind, definieren sich die Leute in Sprachen die sie nicht brauchen, und alles auf eine Zeile schreiben koennten, droelfzig verschiedene Coding-Conventions und streiten sich darum mehre Jahrzehnte.maksimilian hat geschrieben: Dienstag 27. November 2018, 17:19 Na gut, das ist schon besser. Ich möchte es jetzt dabei bewenden lassen und aus einer Mücke keinen Elefanten machenEs gibt mit Python sicher gravierendere Probleme (z.B. dieses verdammte Indentation).
-
- User
- Beiträge: 86
- Registriert: Freitag 2. November 2018, 20:59
Hallo Ihr, bitte den Ball flach halten. Ich wollte mit meiner in Klammern gesetzten Anmerkung keinen Sturm auslösen. Nur zur Klarstellung, ich habe schon immer meine Implementierungen klar strukturiert (und kommentiert!). Nur ist es sehr ärgerlich, wenn mir in einem Python-Skipt im Editor (bei mir Notepad++) wieder mal ein Blank oder Tab reingeraten ist und die Editierung wiederholt werden muss. Für mich wäre das Verwenden von Klammern und Semikolons kein Problem. Vielleicht gibt es einen komfortablen Editor, welcher Tabs gleich bei der Eingabe durch eine definierte Zahl von Blanks ersetzt, und ich nur zu faul zum Suchen bin.
maksimilian
maksimilian
- noisefloor
- User
- Beiträge: 4187
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Einrückungen sind nun mal _essentiell_ wichtig in Python. Wenn dich das stört, dann ist Python halt nicht deine Sprache.
Gruß, noisefloor
Notepad++ kann das. Muss du nur in den Einstellungen so einstellen. Du musst also noch nicht mal Suchen, sondern einfach nur machen...Vielleicht gibt es einen komfortablen Editor, welcher Tabs gleich bei der Eingabe durch eine definierte Zahl von Blanks ersetzt, und ich nur zu faul zum Suchen bin.
Einrückungen sind nun mal _essentiell_ wichtig in Python. Wenn dich das stört, dann ist Python halt nicht deine Sprache.
Gruß, noisefloor
Man kann bei fast allen Editoren (den Standard Windows-Editor mal ausgenommen) einstellen wie er sich bei Tabs verhalten soll. Also ab in die Einstellungen und Leerzeichen statt Tabs wählen und die Anzahl auf 4 setzen. Und wenn du schon da bist: Zeilenlänge ist 80. Man kann sich über die Einstellungen eine Begrenzung dafür anzeigen lassen.
Ich nutze übrigens auch unter Windows GEdit. Findet sich bei Interesse hier: https://wiki.gnome.org/Apps/Gedit#Download
Ich nutze übrigens auch unter Windows GEdit. Findet sich bei Interesse hier: https://wiki.gnome.org/Apps/Gedit#Download
Nicht nur einen, sogar viele, einer davon ist z.B. Sublime Text https://www.sublimetext.commaksimilian hat geschrieben: Mittwoch 28. November 2018, 12:32 Vielleicht gibt es einen komfortablen Editor, welcher Tabs gleich bei der Eingabe durch eine definierte Zahl von Blanks ersetzt
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png