当我们可以使用简单方法时,为什么要使用__init__和self

时间:2019-06-24 20:14:43

标签: class methods python-3.7 init self

对于为什么我们在使用方法定义类时为什么使用 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 个答案:

答案 0 :(得分:1)

您的print语句生成的短语“汽车是奥迪车型是x8颜色是黑色”只是 words ;您只是在形成一个使用 words “ model”和“ color”的字符串(而car类基本上是不相关的)。

initself旨在定义具有属性的对象,以便您可以进行基于对象的编程; car类会生成一个实例,该实例实际上具有一个模型和一种颜色。

就像鹦鹉重复“我六英尺高”这个短语和实际上 六英尺高的人类之间的区别。