Зачем использовать __init__ и self, когда мы можем использовать простые методы - PullRequest
0 голосов
/ 24 июня 2019

У меня путаница относительно того, почему мы используем init и self при определении класса, когда мы можем использовать методы.Следующий пример иллюстрирует мою путаницу:

Пример 1 Использование init и self:

class car:
    def __init__(self,model,color):
        self.model = model
        self.color = color
    def show(self):
        print('model is', self.model)
        print('color is', self.color)    

audi = car('audi a4', 'blue')
ferrari = car('ferrari 488','green')

audi.show()
model is audi a4
color is blue

ferrari.show()
model is ferrari 488
color is green

Пример 2 Использование методов:

class car:
    def audifeatures(car, model, color):
        print ('car is', car, 'model is', model, 'color is', color)
    def ferrarifeatures(car, model, color):
        print ('car is', car, 'model is', model, 'color is', color)

car.audifeatures('audi','x8','black')
car is audi model is x8 color is black

car.ferrarifeatures('ferrari','f5','red')
car is ferrari model is f5 color is red

1 Ответ

1 голос
/ 24 июня 2019

Фраза "автомобиль - ауди, модель - x8, цвет - черный", сгенерированный вашим оператором print - просто слов ;вы просто формируете строку, которая использует слова"модель" и "цвет" (а класс car в основном не имеет значения).

init и self - этооб определении объекта со свойствами , чтобы вы могли выполнять объектно-ориентированное программирование;car класс генерирует экземпляр , который на самом деле имеет модель и цвет.

Это похоже на разницу между попугаем, который повторяет фразу "Мне шестьфутов ростом "и человека, который на самом деле имеет шесть футов роста.

...