Хотя вы можете сделать это в Python (как я объясню ниже), это может быть не самый лучший или самый питонический подход. Для других пользователей, которым приходится просматривать ваш код (включая вас за 3 месяца), этот синтаксис крайне запутан. Подумайте, например, о том, как это работает с конфликтами имен, неопределенными значениями и перебором свойств.
Вместо этого рассмотрите возможность хранения данных в структуре данных, которая лучше подходит для этого, например, словарь . Тогда вы можете просто хранить все в
cluster = {'c':[],'indiv':[]}
Плохо подражая Матлабу :
Вы можете назначать свойства любым изменяемым объектам в Python.
Если вам нужен объект только для хранения данных, то вы можете определить пользовательский класс без какой-либо функциональности следующим образом:
class CustomStruct():
pass
Тогда вы можете иметь
struct=CustomStruct()
struct.c=[]
и таким образом изменить или запросить свойства класса.
Лучший подход:
Если вы действительно хотите сохранить эти вещи как свойства объекта, то, возможно, было бы лучше определить переменные в инициализации этого класса.
class BetterStruct():
def __init__(self):
self.c=[]
self.indiv=[]
Таким образом, пользователи, просматривающие ваш код, могут сразу понять ожидаемые значения, и вы можете гарантировать, что они правильно инициализированы.
Разрешение управления данными
Если вы хотите проверить данные, когда они хранятся, или если они должны быть рассчитаны после того, как пользователь запрашивает их (вместо того, чтобы хранить их постоянно), тогда рассмотрите возможность использования декораторов свойств Python