morozota
@morozota

Зачем использовать __init__?

Зачем использовать __init__, если можно просто задавать переменные в классе ?
class A():
    var = 3
    def __init__(self, var2):
        self.var2 = var2

class B(A):
        def x(self):
            print(self.var)
            print(self.var2)


b = B(1)
print(b.x())
  • Вопрос задан
  • 348 просмотров
Решения вопроса 3
@vanillathunder
Переменные в классе при создании объекта будут иметь одно и то же значение, а при инициализации через конструктор ты можешь передавать разные значения.
Ответ написан
Комментировать
ApeCoder
@ApeCoder
  1. Это короче (File("my.name") вместо x = File(); x.name = "myName")
  2. Этим можно явно обозначить что некоторые параметры необходимы (нельзя создать файл без имени)
  3. Можно предпринять какие-то действия (например, открыть файл)
  4. Кстати, класс является callable - и вызывает конструктор при вызове себя: map(file, ["a.txt", "b.txt", "c.txt"])
Ответ написан
Комментировать
ShamanSBubnom
@ShamanSBubnom
т.к. конструктор - это метод , он может не только присваивать значения полям , но и , например, вызывать функции.
Все зависит от задачи - если всегда нужно присваивать одни и те же значения , то конструктор действительно не нужен, а если что-то посложнее то без него никак.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы