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


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

Re: [Python-de] Klassen rekursiv in einem Modul instantiieren

From Hartmut Goebel <h.goebel@goebel-consult.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Klassen rekursiv in einem Modul instantiieren
Date 2018-10-10 09:29 +0200
Organization Goebel Consult
Message-ID <mailman.74.1539157083.2799.python-de@python.org> (permalink)
References <c3736ae4-6baa-4147-9e97-4ef6a6b243ba@googlegroups.com> <70bd0008-303f-01b8-9285-6a6a44e97e78@goebel-consult.de>

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

Am 09.10.2018 um 22:29 schrieb Philipp Kraus:
> Ich möchte jetzt in der __main__.py einmal rekursiv über alle *.py Dateien in algorithm durch gehen und aus jeder *.py Datei die Klasse instantiieren

Am besten wohl mit pkgutil.walk_modules. Falls es nicht rekursiv sein
soll, mit pkgutil.iter_modules.

Ungefähr so (siehe auch doc-string der Funktionen)

print([b
      for a,b,c in 
      pkgutil.iter_modules(
          mymodule.algorithm.__path__,
          mymoduel.algorithm.__name__+".")])

Dabei bekommst Du natürlich auch mymodule.algorithm.algorithm. Überlege
Dir mal, ob Du den Code dieses module nicht in das Paket (alsi die
__init__.py-Datei) von mymodule.algorithm versheiben kannst. Dann sparst
Du das filtern.

Wenn Dir dieser Tipp geholfen hat, habe ich eine Bitte: Probiere aus, ob
das auch noch funktioniert, wenn Du Dein Programm mit PyInstlaller
packetiert hast. (Hierzu musst Du wohl erstmal alle Sub-Module als
--hidden-import angeben, oder einen zwei-Zeiler "hook" schreiben.)
Schick mir dann bitte eine Nachricht oder mache auf Github einen
Bug-Report auf. Herzlichen Dank!

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
https://www.goe-con.de/blog/nicht-pgp-ist-gescheitert-die-entwickler-haben-versagt

Kolumne:
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2011-08-horrorszenario-bring-your-own-device


Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Klassen rekursiv in einem Modul instantiieren Philipp Kraus <philipp.kraus.flashpixx@gmail.com> - 2018-10-09 13:29 -0700
  Re: [Python-de] Klassen rekursiv in einem Modul instantiieren Florian Diesch <diesch@spamfence.net> - 2018-10-09 23:38 +0200
  Re: Klassen rekursiv in einem Modul instantiieren Peter Otten <__peter__@web.de> - 2018-10-10 00:08 +0200
    Re: Klassen rekursiv in einem Modul instantiieren Philipp Kraus <philipp.kraus.flashpixx@gmail.com> - 2018-10-09 22:21 -0700
      Re: Klassen rekursiv in einem Modul instantiieren Peter Otten <__peter__@web.de> - 2018-10-10 10:32 +0200
  Re: [Python-de] Klassen rekursiv in einem Modul instantiieren Hartmut Goebel <h.goebel@goebel-consult.de> - 2018-10-10 09:29 +0200
    Re: [Python-de] Klassen rekursiv in einem Modul instantiieren Philipp Kraus <philipp.kraus.flashpixx@gmail.com> - 2018-10-10 09:51 -0700

csiph-web