Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4754

Re: [Python-de] import Problem

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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