先上答案。
类:类就是一个模具,模具里面刻画了月饼的各种特征和功能。比如说生产月饼的时候,单个月饼的形状和花纹符号并不是用手捏出来的,这样效率太低。所以厂家就会先制作一个月饼模具,批量生产的时候只需要用这个月饼模具一盖,就立刻做好了每个月饼。
子类:厂家不会只生产一款月饼。子类就是参照第一个模具,做了一些改进后形成的第二个模具(第二款月饼)。
__init__函数:它是类(模具)当中的一种特殊函数,用来记录类中每个个体的特征,目的是用来区分开不同个体的特征。比如说一个“人”的模具,__init__函数记录的就可以是具体人的具体名字、兴趣、爱好等等。一旦类生效了,__init__函数的代码一定会被执行,无论它里面有什么样的变量、函数。
实例:模具(类)做好以后,总要拿去用,模具盖出来的每一个月饼,就是一个实例。
self变量:self变量相当于每个实例的身份证编号。用来区分开不同个体。
下面用一段代码来具体地体会一下。
#定义一个“人”的类,类就相当于女娲造人时使用的模具。
class Person:
#一些不会改变的参数可以直接定义
head = 1
eyes = 2
hands = 2
#一些个性化的参数,用__init__函数来写。所谓个性化参数,就是不同的人会有不同的值。
#self相当于每一个具体的人的身份证号码,用以区分不同的人。nanme是姓名,gender是性别,hobby是爱好,major是所学专业。
def __init__(self,name,major,hobby):
#将传入的参数赋予给具体的人
self.name = name
self.hobby = hobby
self.major = major
def sayHello(self):
print('作为我自己,'+'我的名字是'+self.name+',专业是'+self.major+',兴趣爱好是'+self.hobby+'。')
#把Person实例化,得到具体的实例,小明。
person1 = Person('小明','计算机科学与技术','编程、泡图书馆、内卷')
print('hello,作为一个正常人,我当然有'+str(person1.head)+'个头,'+str(person1.eyes)+'个眼睛,'+str(person1.hands)+'个手。')
person1.sayHello()
#定义一个子类“Idle”即明星,继承自父类“Person”,因为明星也是一种人。
class Idle(Person):
def __init__(self,name,major,hobby,years):
#super用于复制父类中的属性。
super().__init__(name,major,hobby)
#定义Idle特有的属性,即训练时长years
self.years = years
def sayHello1(self):
print('训练时长'+self.years)
print('\n')
#实例化,从而得到另一个具体的实例。
person2 = Idle('cxk','唱、跳、rap、篮球','戏剧影视文学','两年半')
print('hello,作为一个正常人,我当然有'+str(person2.head)+'个头,'+str(person2.eyes)+'个眼睛,'+str(person2.hands)+'个手。')
#子类可以调用父类的函数
person2.sayHello()
#子类调用自己的函数
person2.sayHello1()
运行结果: