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


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

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

From Florian Diesch <diesch@spamfence.net>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Klassen rekursiv in einem Modul instantiieren
Date 2018-10-09 23:38 +0200
Message-ID <mailman.66.1539121496.2799.python-de@python.org> (permalink)
References <c3736ae4-6baa-4147-9e97-4ef6a6b243ba@googlegroups.com> <4bd9e504569f3d9b89f7ad4f28ef35fd@spamfence.net>

Show all headers | View raw


Am 2018-10-09 22:29, schrieb Philipp Kraus:
> In der algorithm.py ist eine Basis Klasse implementiert, die die
> Klasse in foo.py ableitet, somit ist jede Klasse unterhalb von
> algorithm immer von der Klasse Algorithm in algorithm.py abgelietet.
> 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
> 
> Ich brauche so etwas
> 
> l = []
> for i in getAllKlasse_in_algorithm():
>       if i instaceof Algorithm
>          l.append(i())


Ich würde das über eine Metaklasse machen, die die Klassen in einer 
Liste sammelt:


algo_list = []

class AlgoMeta(type):

     def __init__(cls, name, bases, adict):
         type.__init__(cls, name, bases, dict)
         algo_list.append(cls)


class Algorithm(metaclass=AlgoMeta):
     pass

class A(Algorithm):
     pass

class B(A):
     pass

class C(Algorithm):
     pass




print(algo_list)



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