Перво-наперво, mem_list
Инициализируется в классе '__init__
:
# Inside the "Block" class definition
def __init__(self, name, access, address=None):
...
self.mem_list = []
Позже вызов был просто изменением значения - некоторые просто использовали бы append()
или insert()
, некоторыепросто пропустил бы существующий список.
Что касается вашего второго вопроса, то вполне нормально сделать это в обе стороны - я в основном пишу свои классы таким образом, что могу инициализировать некоторую переменную с помощью вызова класса, с простой проверкойпосмотрите, являются ли переданные данные действительными, а затем измените эту переменную по требованию - если у моего метода init нет набора параметров.
В этом случае может быть просто проще инициализировать класс с помощьютолько необходимые поля (с некоторыми значениями по умолчанию для других), а затем просто измените эти значения напрямую.