对于为什么我们在使用方法定义类时为什么使用 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
答案 0 :(得分:1)
您的print
语句生成的短语“汽车是奥迪车型是x8颜色是黑色”只是 words ;您只是在形成一个使用 words “ model”和“ color”的字符串(而car
类基本上是不相关的)。
init
和self
旨在定义具有属性的对象,以便您可以进行基于对象的编程; car
类会生成一个实例,该实例实际上具有一个模型和一种颜色。
就像鹦鹉重复“我六英尺高”这个短语和实际上 六英尺高的人类之间的区别。