Это может быть глупый вопрос, но сказать, что я хочу построить программу из снизу вверх, как так:Numpy: Массив экземпляров класса
class Atom(object):
def __init__(self):
'''
Constructor
'''
def atom(self, foo, bar):
#...with foo and bar being arrays of atom Params of lengths m & n
"Do what atoms do"
return atom_out
... я могу поставить свои экземпляры в словаре:
class Molecule(Atom):
def __init__(self):
def structure(self, a, b):
#a = 2D array of size (num_of_atoms, m); 'foo' Params for each atom
#b = 2D array of size (num_of_atoms, n); 'bar' Params for each atom
unit = self.atom()
fake_array = {"atom1": unit(a[0], b[0]),
"atom2": unit(a[1], b[1]),
: : :
: : :}
def chemicalBonds(self, this, that, theother):
: : :
: : :
Мой вопрос, есть ли способ сделать это с помощью Numpy массивов, так что каждый элемент в «real_array
» будет экземпляром atom
--ie, выход отдельных вычислений atom
функции? Я могу расширить это до class Water(molecule):
, который будет выполнять быстрые операции с numpy на больших выводах structure
и chemicalBonds
, следовательно, нужны массивы ... Или это так, что я собираюсь сделать это неправильно?
Также, если я нахожусь на правильном пути, я был бы признателен, если бы вы захотели бросить какие-либо советы о том, как структурировать «иерархическую программу», как это, так как я не уверен, что делаю это правильно и недавно обнаружил, что я не знаю, что делаю.
Заранее спасибо.
«недавно обнаружил, что я не знаю, что я делаю». Интересно, как это чувствует. Звучит как настоящий момент просветления;) – shx2
'self.unit = self.atom()' - разве вам не хватает аргументов в вызове функции? что такое 'real_array'? какие типы являются элементами в 'a, b, x, y, foo, bar'? – shx2
@ shx2 Это поездка. Сокрушительный минимум улучшился благодаря тому, что вы можете сказать: «Сегодня я чему-то научился». –