code organisieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sedi
User
Beiträge: 104
Registriert: Sonntag 9. Dezember 2007, 19:22

Hallo zusammen,

mal eine prinzipielle Frage: Ich realisiere ein Projekt, in welchem viele Pakete genutzt werden. Immer wieder benötigter Code ist aber in einer Base.py untergebracht.

Also folgende Situation:
./
+ program.py
+ base.py
- Paket A/
- modulA1.py
- modulA2.py
- Paket B/
- modulB1.py
- modulB2.py

Wie kann man jetzt von modulB1 Prozeduren von base benutzen?
CU sedi
----------------------------------------------------------
Python 3.5; Python 3.6
LinuxMint18
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Auf relative importe verzichtet man besser.

Verwende ein top-level Paket in dass du den gesamten Code außer Skripte packst. Du kannst darunter immernoch mehr Pakete anlegen wenn nötig.
sedi
User
Beiträge: 104
Registriert: Sonntag 9. Dezember 2007, 19:22

Vielen Dank, nur zum Verständnis:

toplevel Paket - also so oder:

Code: Alles auswählen

./toplevel
  + __init__.py
  + base.py
  + program.py
  -./PaketA
               + modulA1.py
               + modulA2.py
  -./PaketB
               + modulB1.py
               + modulB2.py
Und wie greift man dann drauf zu nur mittels
import base ???
CU sedi
----------------------------------------------------------
Python 3.5; Python 3.6
LinuxMint18
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Gar nicht, du machst einfach import toplevel.base
sedi
User
Beiträge: 104
Registriert: Sonntag 9. Dezember 2007, 19:22

Genau das is es - DANKE
CU sedi
----------------------------------------------------------
Python 3.5; Python 3.6
LinuxMint18
Antworten