Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #4754
| From | Hermann Riemann <nospam.ng@hermann-riemann.de> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] import Problem |
| Date | 2017-04-28 11:33 +0200 |
| Message-ID | <emggijFmrvvU1@mid.individual.net> (permalink) |
| References | <emg3qcFkefeU1@mid.individual.net> <odurs8$ka2$1@blaine.gmane.org> <mailman.478.1493366431.2951.python-de@python.org> |
Am 28.04.2017 um 09:44 schrieb Peter Otten:
>> der nicht gerne extra Variable umkopieren mag
> Genau das tust du aber mit
>> from p4 import *
> und wie Christopher bereits gesagt hat, macht "global" einen Namen global im
> Modul, nicht im Programm.
> Um eine Funktion auszulagern und dabei zirkuläre Imports zu vermeiden
> übergibst du am besten den "state" explizit:
> # zeugs.py
> from ausgelagert import f
Da es sich in der Anwendungen um viele Funktionen handelt,
ist * statt f angesagt.
Bis dahin also nichts Neues.
> x = f(0)
> # ausgelagert.py
> def f(x):
> return x + 42
Im konkreten Fall handelt es sich um viele
Modul übergreifende Variable, die ich nicht dauernd
in Argumentlisten übergeben mag.
Das ganze könnte eher nach folgenden Schema ablaufen:
Kommando
for i in *.py;do echo "##########" $i;cat $i;done
liefert
########## globale_funktionen.py
import globale_variable
g=globale_variable.variablen
def f():
global g
g.x=1
########## globale_variable.py
class Globale_Variablen:
def __init__(self):
self.x=0
variablen=Globale_Variablen()
########## initialisiere.py
from globale_funktionen import *
f()
########## test.py
import globale_variable
g=globale_variable.variablen
import initialisiere
print(g.x)
python3 test.py
liefert wie gewünscht dann
1
Hermann
der leider in test.py nicht noch zusätzlich
import globale_funktionen as g
absetzen darf, um die Namenszahl zu verringern.
--
http://www.hermann-riemann.de
Back to de.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
import Problem Hermann Riemann <nospam.ng@hermann-riemann.de> - 2017-04-28 07:55 +0200
Re: [Python-de] import Problem Christopher Arndt <chris@chrisarndt.de> - 2017-04-28 08:45 +0200
Re: [Python-de] import Problem Hermann Riemann <nospam.ng@hermann-riemann.de> - 2017-04-28 09:07 +0200
Re: [Python-de] import Problem Peter Otten <__peter__@web.de> - 2017-04-28 09:44 +0200
Re: [Python-de] import Problem Hermann Riemann <nospam.ng@hermann-riemann.de> - 2017-04-28 11:33 +0200
Re: [Python-de] import Problem Peter Otten <__peter__@web.de> - 2017-04-28 12:48 +0200
Re: [Python-de] import Problem Hermann Riemann <nospam.ng@hermann-riemann.de> - 2017-04-28 13:21 +0200
Re: [Python-de] import Problem Peter Otten <__peter__@web.de> - 2017-04-28 14:48 +0200
Re: import Problem Hermann Riemann <nospam.ng@hermann-riemann.de> - 2017-04-28 14:48 +0200
csiph-web