Я хочу иметь список классов в файле базового класса, который содержит производные классы, как они создаются во время выполнения:Заполняем список классов в Python в модуле базового класса
BaseClass.py:
# This is a list of objects to populate, holds classes (and not instances)
MyClassesList=[]
class MyBase(object):
name='' #name of the specific derived class
def __init__(self):
pass
Это реальный пример:
Я не в состоянии изменить любой производные классы кода, поэтому я хочу, чтобы сохранить список добавленных серверов в барельефе е класс, а затем этот список во время выполнения
# Populate the Servers list automatically.
# This is a list of available servers to choose from, holds classes (and not instances)
Servers=[]
class ServerBase(object):
name='' #name of the specific server class, for each server class
def __init__(self):
self.connected = False
def __del__(self):
self._disconnect()
def connect(self):
DBG("connect called for server {self.name}, is already connected: {self.connected}")
if self.connected: return
self._connect()
self.connected = True
def get_data(self):
self.connected or self.connect()
data=''
# We're obligated to read the data in chunks.
for i in range(100):
data += self._get_data()
return data
def _connect(self):
raise NotImplementedError("Interface Function Called")
def _disconnect(self):
raise NotImplementedError("Interface Function Called")
def _get_data(self):
raise NotImplementedError("Interface Function Called")
Не могли бы вы предоставить больше информации? Как эти производные классы создаются во время выполнения? – poros
Обычно это делается метаклассами или заводскими методами. В этом случае я предлагаю вам взглянуть, как работают метаклассы. Хотя я должен сказать, что это не похоже на хорошую идею. – Wolph