Am 28.04.2017 um 12:48 schrieb Peter Otten:
########## globale_funktionen.py import globale_variable g=globale_variable.variablen def f(): global g g.x=1
Das "global"-Statement ist überflüssig, da du den Namen g nur liest.
Richtig.
########## globale_variable.py class Globale_Variablen: def __init__(self): self.x=0 variablen=Globale_Variablen()
Wenn du sowieso mit Klassen hantierst, mach aus f() doch eine Methode.
Wenn ich ########## globale_variable.py zu class Globale_Variablen: def __init__(self): self.x=0 from globale_funktionen import * variablen=Globale_Variablen() erweitere, erhalte ich: SyntaxError: import * only allowed at module level Hermann der seine globale Datei in eine Datei einmal mit globale Variable und noch in etliche Dateien mit Funktions- und Klassenarten zerlegen möchte. -- http://www.hermann-riemann.de
Hermann Riemann wrote:
Am 28.04.2017 um 12:48 schrieb Peter Otten:
########## globale_funktionen.py import globale_variable g=globale_variable.variablen def f(): global g g.x=1
Das "global"-Statement ist überflüssig, da du den Namen g nur liest.
Richtig.
########## globale_variable.py class Globale_Variablen: def __init__(self): self.x=0 variablen=Globale_Variablen()
Wenn du sowieso mit Klassen hantierst, mach aus f() doch eine Methode.
Wenn ich ########## globale_variable.py zu class Globale_Variablen: def __init__(self): self.x=0 from globale_funktionen import * variablen=Globale_Variablen() erweitere, erhalte ich:
SyntaxError: import * only allowed at module level
Hermann der mit dem Kopf durch die Wand will ;)
*-Imports sind eine Unsitte; die Namen explizit aufzuführen dürfte nicht zuviel verlangt sein. Oder du verwendest ein Mix-in: # methoden.py class M: def f(self): ... ... # gottobjekt.py import methoden class G(methoden.M): ...
participants (2)
-
Hermann Riemann -
Peter Otten