Возможно, это скорее вопрос стиля, чем технический, но у меня есть класс python с несколькими переменными-членами, и я хочу, чтобы он работал так, что некоторые из переменных-членов инициализируются, когда пользователь сначала создает экземпляр class (т.е. в функции __init__), и я хочу, чтобы другие переменные-члены были определены из аргументов функций-членов, которые будут вызываться позже. Поэтому мой вопрос заключается в том, должен ли я инициализировать все переменные-члены в функции __init__ (и установить те, которые будут определены позже, на фиктивные значения) или инициализировать некоторые из функций __init__, а некоторые - в более поздних функциях. Я понимаю, что это может быть трудно понять, поэтому вот несколько примеров.
В этом примере var3 сначала устанавливается на 0 в функции __init__, а затем позже в функции my_funct задано значение.
class myClass(object):
def __init__(self,var1,var2):
self.var1=var1
self.var2=var2
self.var3=0
def my_funct(self,var3):
self.var3=var3
и в этом примере var3 вообще не определяется функцией __init__
class myClass(object):
def __init__(self,var1,var2):
self.var1=var1
self.var2=var2
def my_funct(self,var3):
self.var3=var3
Я не думаю, что любой из способов имел бы большое значение (может быть, небольшая разница в использовании памяти). Но мне было интересно, почему по какой-то причине одна из них предпочтительнее других.