Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Peter Otten <__peter__@web.de> Newsgroups: de.comp.lang.python Subject: Re: [Python-de] import Problem Date: Fri, 28 Apr 2017 14:48:43 +0200 Organization: None Lines: 50 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8Bit X-Trace: news.uni-berlin.de FOU9jtsd1B99WdVKRrwusQgNeQcxs0lxr1xEyrNofvYw== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org X-Injected-Via-Gmane: http://gmane.org/ User-Agent: KNode/4.13.3 X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: Xref: csiph.com de.comp.lang.python:4758 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): ...