python面向对象

发布时间:2024年01月19日

前言:学习python有一段时间了,但是总搞不清楚面向过程和面向对象,具体重新学习一下

python是一种即支持面向过程(函数式)又支持面向对象的一种语言

面向对象:对着代码逻辑(包含数据、函数、逻辑)进行封装,最大程度提高代码的复用,减少编码量

一、类和对象(封装)

类是对一系列具有相同特征和行为的事件的统称,是一个抽象的概念,本身真实存在的事物

*特征既是属性

*行为既是方法

类相当于制造飞机的图纸,就是一个模板,是符责创建对象的

#要针对所有的飞机定义一个类,类就是模板
#class是固定的,表示是一个类
#Plane表示类名称,自定义
class Plane:  #定义一个类
# 如果每个对象都有的属性,但是又不会根据对象的修改二修改,而是要改所有都改
    made = "Made in China"
    #每个飞机对象都有长宽高
    #假设飞机都是常100,宽50,高70
    #__init__表示初始化方法,意思就是说在创造对象时默认会自动调用
    #如果对象在创建时就需要具备哪些属性,就在这里定义
    #为了区分对象,我们给每架飞机设置一个编号,但是编号是动态的
    #面向对象里面有两个重要的概念,类、对象,Plane是类,Plane(sn="001")是对象,类的定义里面self就代表对象本身
    #函数写在类下面,叫做方法,没有写在类下面叫函数
????#对于每个对象都有的属性和行为,并且大家都不相干,此时属性和行为就需要采用实例属性和实例方法来定义

    def __init__(self,sn,length=100,width=50,height=70):
        self.sn = sn
        self.length = length
        self.width = width
        self.height = height
????#针对对象的行为动作,定义成方法,self代表对象本身
    def start(self):  #对象方法,实例方法
        print(f"{self.sn}正在起飞")

    def fly(self,i): #对象方法,实例方法
        print(f"{self.sn}正在{i}米高空飞行")
    #当前类所有代表的事物,公共的行为,但是这个行为又不会因为对象的改变而改变,那么就采用类方法来定义
    @classmethod
    def fly_ability(cls): #cls代表当前类名称
        print(f"{cls.made}飞机质量很好")
        return "1234567"
if __name__ == '__main__':
    #根据飞机模板,去创建一架飞机
    # 这就是根据类去创造一个对象,Plane()这是创造的过程,然后将创造的对象赋值给plane1这个变量
    #创造对象的过程也叫实例化对象
    plane1 = Plane(sn="001")  #实例化对象
    print(plane1.sn)
    print(plane1.length)
    print(plane1.width)
    print(plane1.height)
    #再造一架飞机
    plane2 = Plane(sn="002")
    study1 = Study(name="小米",phone=12345,wx=123456)
    print(study1.name)
    print(study1.phone)
    print(study1.wx)
    plane1 = Plane(sn="001")
    #两个行为全部采用变量进行调用,变量实际上就是飞机对象
    plane1.start()
    plane1.fly(i=800)
    #类属性的调用,可以通过类名称.类属性调用
    print(Plane.made)
    #类方法调用
    print(Plane.fly_ability())

文章来源:https://blog.csdn.net/m0_75191567/article/details/135686642
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。