Seite 1 von 1
h-Datei analog zu C ?
Verfasst: Samstag 24. November 2018, 16:05
von maksimilian
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
Re: h-Datei analog zu C ?
Verfasst: Samstag 24. November 2018, 16:20
von __deets__
Ein Modul, in dem die stehen, und das du dann entsprechend ueberall importierst ist die Loesung, die man in Python ueblicherweise waehlt.
Re: h-Datei analog zu C ?
Verfasst: Samstag 24. November 2018, 16:22
von /me
Normalerweise macht man das via import.
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 = ''
Und jetzt der Code der die Daten verwendet
Re: h-Datei analog zu C ?
Verfasst: Montag 26. November 2018, 19:25
von maksimilian
@ 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
Re: h-Datei analog zu C ?
Verfasst: Montag 26. November 2018, 19:35
von __deets__
Muss man nicht. from modul import KONSTANTE geht auch. Aber nicht * importieren!!!
Re: h-Datei analog zu C ?
Verfasst: Dienstag 27. November 2018, 10:32
von maksimilian
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
Re: h-Datei analog zu C ?
Verfasst: Dienstag 27. November 2018, 12:57
von pillmuncher
maksimilian hat geschrieben: Dienstag 27. November 2018, 10:32... viele Importanweisungen einfügen ...
Es geht auch so:
Re: h-Datei analog zu C ?
Verfasst: Dienstag 27. November 2018, 17:19
von maksimilian
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
Re: h-Datei analog zu C ?
Verfasst: Dienstag 27. November 2018, 17:31
von snafu
maksimilian hat geschrieben: Dienstag 27. November 2018, 17:19
Es gibt mit Python sicher gravierendere Probleme (z.B. dieses verdammte Indentation).
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.
Re: h-Datei analog zu C ?
Verfasst: Dienstag 27. November 2018, 17:46
von __blackjack__
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

)
Re: h-Datei analog zu C ?
Verfasst: Dienstag 27. November 2018, 17:52
von __deets__
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 machen

Es gibt mit Python sicher gravierendere Probleme (z.B. dieses verdammte Indentation).
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.
Re: h-Datei analog zu C ?
Verfasst: Mittwoch 28. November 2018, 12:32
von maksimilian
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
Re: h-Datei analog zu C ?
Verfasst: Mittwoch 28. November 2018, 13:02
von noisefloor
Hallo,
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.
Notepad++ kann das. Muss du nur in den Einstellungen so einstellen. Du musst also noch nicht mal Suchen, sondern einfach nur machen...
Einrückungen sind nun mal _essentiell_ wichtig in Python. Wenn dich das stört, dann ist Python halt nicht deine Sprache.
Gruß, noisefloor
Re: h-Datei analog zu C ?
Verfasst: Mittwoch 28. November 2018, 13:12
von snafu
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
Re: h-Datei analog zu C ?
Verfasst: Mittwoch 28. November 2018, 17:09
von ThomasL
maksimilian 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
Nicht nur einen, sogar viele, einer davon ist z.B. Sublime Text
https://www.sublimetext.com