Я недавно перешел из Matlab в Python и хочу перенести некоторый код Matlab в Python. Однако возникло препятствие.
В Matlab вы можете определить класс с его методами и создать nd-массивы экземпляров. Приятно то, что вы можете применять методы класса к массиву экземпляров, пока метод написан так, что он может работать с массивами. Теперь в Python я обнаружил, что это невозможно: при применении метода класса к списку экземпляров он не найдет метод класса. Ниже приведен пример того, как я написал бы код:
class testclass():
def __init__(self, data):
self.data = data
def times5(self):
return testclass(self.data * 5)
classlist = [testclass(1), testclass(10), testclass(100)]
times5(classlist)
Это приведет к ошибке в строке times5 (classlist). Теперь это простой пример, объясняющий, что я хочу сделать (последний класс будет иметь несколько числовых массивов в качестве переменных).
Каков наилучший способ получить такую функциональность в Python? Причина, по которой я хочу это сделать, заключается в том, что он позволяет выполнять пакетные операции, и они делают класс более мощным. Единственное решение, которое я могу придумать, - это определить второй класс, который имеет список экземпляров первого класса в качестве переменных. Пакетная обработка должна быть реализована во втором классе.
спасибо!