Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #5271
| Newsgroups | de.comp.lang.python |
|---|---|
| Date | 2018-10-09 22:21 -0700 |
| References | <c3736ae4-6baa-4147-9e97-4ef6a6b243ba@googlegroups.com> <ppj8td$qjg$1@gioia.aioe.org> |
| Message-ID | <d545a2c2-a336-4805-882c-ba4279968f32@googlegroups.com> (permalink) |
| Subject | Re: Klassen rekursiv in einem Modul instantiieren |
| From | Philipp Kraus <philipp.kraus.flashpixx@gmail.com> |
Danke für die 2 hilfreichen Antworten. Ich habe aktuell in meiner algorithm.py eine Klasse class Algorithm(object) : .... und dann entsprechend in allen anderen *.py class MyAlgo(Algorithm): ... meine Frage ist, wie importiere ich "alles", ich habe es mit __all__ in der __init__.py probiert, ich möchte in meiner __main__.py am liebsten from mymodule.algorithm import * sagen können und dann einmal über alle iterieren können. Ich scheitere aktuell an dem "Gesamtimport Phil Am Mittwoch, 10. Oktober 2018 00:08:49 UTC+2 schrieb Peter Otten: > Philipp Kraus wrote: > > > Ich brauche so etwas > > > > l = [] > > for i in getAllKlasse_in_algorithm(): > > if i instaceof Algorithm > > l.append(i()) > > > > Wie komme ich an alle Klasse dran. Später sollen noch weitere Submodule / > > Klassen hinzu kommen und ich möchte im Grunde in der __main__.py eine > > generische Routine haben, die einfach alles einlist > > Nachdem alle Sub-Module importiert sind, kannst du __subclasses__() rekursiv > aufrufen (bei entsprechender Klassenhierarchie sind Dopplungen möglich). > > >>> class A: pass > ... > >>> class B(A): pass > ... > >>> class C(B): pass > ... > >>> A.__subclasses__() > [<class '__main__.B'>] > >>> B.__subclasses__() > [<class '__main__.C'>] > >>> def subclasses(cls): > ... yield cls > ... for c in cls.__subclasses__(): > ... yield from subclasses(c) > ... > >>> list(subclasses(A)) > [<class '__main__.A'>, <class '__main__.B'>, <class '__main__.C'>]
Back to de.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
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