Возможно, это скорее вопрос стиля, чем технический, но у меня есть класс 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
Я не думаю, что любой из способов имел бы большое значение (может быть, небольшая разница в использовании памяти). Но мне было интересно, почему по какой-то причине одна из них предпочтительнее других.