Когда я пишу класс, я объявляю некоторые переменные в методе __init__
и некоторые другие в других функциях. Таким образом, я обычно в конечном итоге с чем-то вроде этого:Где лучше объявлять переменные в классе Python?
class Foo:
def __init__(self,a, b):
self.a=a
self.b=b
def foo1(self,c, d)
sum=self.a+self.b+c+d
foo2(sum)
def foo2(self,sum)
print ("The sum is ", sum)
Я нахожу этот способ немного грязный, потому что становится трудно следить за всеми переменными. Напротив, управление переменными, когда они объявлены в методе __init__
, становится более простым. Таким образом, вместо прежней формы мы имели бы:
class Foo:
def __init__(self,a, b, c, d, sum):
self.a=a
self.b=b
self.c=c
self.d=d
self.sum=sum
def foo1(self)
self.sum=self.a+self.b+self.c+self.d
foo2(self.sum)
def foo2(self)
print ("The sum is ", self.sum)
Какой из них вы выбрали бы и почему? Считаете ли вы, что объявление всех переменных всех функций класса в методе __init__
было бы лучшей практикой?
Ваш 'foo2 (сумма)' в 'Foo.foo1' не будет выполняться, потому что у вас есть' return' заявление на линии над ним. –
@MartijnPieters +1. Я удалил «возвращает» – multigoodverse