栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

通俗易懂地介绍Python中的类、子类、

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通俗易懂地介绍Python中的类、子类、

先上答案。

类:类就是一个模具,模具里面刻画了月饼的各种特征和功能。比如说生产月饼的时候,单个月饼的形状和花纹符号并不是用手捏出来的,这样效率太低。所以厂家就会先制作一个月饼模具,批量生产的时候只需要用这个月饼模具一盖,就立刻做好了每个月饼。

子类:厂家不会只生产一款月饼。子类就是参照第一个模具,做了一些改进后形成的第二个模具(第二款月饼)。

__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()

运行结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011168.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号