当前位置 : 主页 > 编程语言 > python >

Python面向对象编程:入门到精通,这一篇足以?

来源:互联网 收集:自由互联 发布时间:2022-06-15
???????????????????????? ????????????Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照???????????? ????????????Python领域优质创作者,大二在读,欢迎大家找我合作学习(文末有VX 想进学习


Python面向对象编程:入门到精通,这一篇足以?_面向对象编程


????????????????????????
????????????Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照????????????
????????????Python领域优质创作者,大二在读,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++)
????​​​入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!????????????​​​ ????​​最后,愿我们都能在看不到的地方闪闪发光,一起加油进步????????????​​​ ????????????“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~????????????
????????????✨✨✨



​​前言:​​ ????????????【​​Python公开课​​​】系列课程是针对Python入门&进阶打造的一全套课程,如果你喜欢的话就抓紧收藏订阅起来吧~????????????
【报团取暖】????????????
????????????如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信或者在文末添加我的VX,我会拉你进学习交流群,我们一起交流学习,报团打卡



????????????新鲜事,早知道:????????????

  • ​​1️⃣ 面向对象编程概述????????????​​
  • ​​1.1面向对象编程定义​​
  • ​​1.2面向过程and面向对象​​
  • ​​2️⃣ 类和对象????????????​​
  • ​​2.1类和对象的关系​​
  • ​​2.2类的定义​​
  • ​​2.3根据类创建对象​​
  • ​​3️⃣构造方法和析构方法????????????​​
  • ​​3.1构造方法​​
  • ​​3.2析构方法​​
  • ​​4️⃣self的使用????????????​​
  • ​​5️⃣封装????????????​​
  • ​​6️⃣继承????????????​​
  • ​​6.1单继承​​
  • ​​6.2 多继承​​
  • ​​7️⃣多态????????????​​
  • ​​7.1Python中多态的作用​​
  • ​​7.2Python中多态的特点​​
  • ​​8️⃣类属性和实例属性????????????​​
  • ​​8.1类属性​​
  • ​​8.2实例属性​​
  • ​​9️⃣类方法和静态方法​​
  • ​​9.1类方法​​
  • ​​9.2静态方法​​
  • ​​????本章小结----知难易????????????​​

1️⃣ 面向对象编程概述????????????

1.1面向对象编程定义

????????????面向对象的编程,顾名思义就是面向你的男朋友or女朋友(俗称对象),去进行编程! 这时候有的小伙伴会问啦:那我没对象怎么面向对象编程呢~

答:这个时候你可以跳过面向对象编程,去学习面向单身狗编程 ???? ???? ????

Python面向对象编程:入门到精通,这一篇足以?_面向对象_02

哈哈哈,开个玩笑,那什么是真正的面向对象编程呢?????????????

⏬ 定义⏬

在现实世界中存在各种不同形态的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物,使用对象间的关系来描述事物之间的联系,这种思想就是面向对象。

1.2面向过程and面向对象

分别使用面向过程和面向对象来实现五子棋:

1.面向过程:

开始游戏➡️黑子先走➡️绘制画面➡️轮到白子➡️绘制画面➡️判断输赢➡️返回步骤2➡️输出最后结果⬇️⬇️⬇️

即:先分析解决问题的步骤➡️使用函数把这些步骤以此实现➡️用的时候需要逐个调用函数

2.面向对象:

黑白双方:这两方的行为一样➡️棋盘系统:负责绘制画面➡️规则系统:负责判断诸如犯规、输赢等⬇️⬇️⬇️

即:把解决问题的事物分为多个对象➡️➡️➡️对象具备解决问题过程中的行为

⚠️⚠️⚠️ 若加入悔棋功能,面向过程和面向对象,分别怎么实现呢?

⏪面向过程⏩:从输入到判断到显示的一系列步骤都需要改动????????????

⏪面向对象⏩:只需要改动棋盘对象就可以????????????

2️⃣ 类和对象????????????

2.1类和对象的关系

面向对象编程有两个非常重要的概念:类和对象。 对象是面向对象编程的核心。

具有相似特征和行为的事物的集合统称为类。 对象是根据类创建的,一个类可以对应多个对象。

????可以把玩具模型看作一个类

????把每个玩具看作一个对象

Python面向对象编程:入门到精通,这一篇足以?_python_03

2.2类的定义

⏬ 定义⏬

类是由3部分组成的:

  • ????类的名称:类名。
  • ????类的属性:一组数据,比如性别。
  • ????类的方法:允许进行操作的方法,比如说话。
  • 使用class关键字来声明一个类,基本格式如下:

    ⏪语法格式⏩

    class 类名:
    类的属性
    类的方法

    2.3根据类创建对象

    1.根据类​​创建对象​​的语法格式如下:

    ⏪语法格式⏩

    对象名 = 类名()

    2.要想给对象​​添加属性​​,可以通过如下方式:

    ⏪语法格式⏩

    对象名.新的属性名 =

    3️⃣构造方法和析构方法????????????

    3.1构造方法

    ⏬ 定义⏬

    构造方法指的是 __init__方法。

    当创建类的实例的时候,系统会自动调用构造方法,从而实现对类进行初始化的操作。

    ⏪语法格式⏩

    class Car:
    def __init__(self):
    self.color = '黑色'
    def toot(self):
    print("%s的车在鸣笛..."%(self.color))

    ◀️ 调用⬇️方法 ▶️

    bmw = Car()
    bmw.toot()

    3.2析构方法

    ⏬ 定义⏬

    当删除一个对象来释放类所占用资源的时候,Python解释器默认会调用另外一个方法,这个方法就是__del__( )方法。

    __del__方法被称为析构方法。

    4️⃣self的使用????????????

    ⏬ 定义⏬

    在方法的列表中,第1个参数永远都是self。

    ♨️self的字面意思是自己,我们可以把它当做C++里面的this指针理解,表示的是对象自身。

    当某个对象调用方法的时候,Python解释器会把这个对象作为第1个参数传给self,开发者只需要传递后面的参数就可以了。

    ⏪语法格式⏩

    class Dog:
    def __init__(self, newColor):
    self.color = newColor
    def printColor(self):
    print("颜色为:%s"%self.color)

    ◀️ 调用⬇️方法 ▶️

    dog1 = Dog("白色")
    dog1.printColor()

    5️⃣封装????????????

    ⏬ 定义⏬

    封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。

    ♨️对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封装的内容。

    ⏪语法格式⏩

    class Person:
    def __init__(self, name, age):
    self.name = name
    self.age = age
    laowang = Person('徐', 30)
    laowang.age = 300
    print(laowang.age)
    # 300

    ⚠️人的年龄可以随便设置,显然不可行⚠️

    为了保护类里面的属性,可以采用如下方式解决:

    ????把属性定义为私有属性,即在属性名的前面加上两个下划线;

    ????添加用于设置或获取属性值的两个方法供外界调用。

    6️⃣继承????????????

    ⏬ 定义⏬

    ✅在现实生活中,继承一般指的是子女继承父辈的财产。

    ✅在程序中,继承描述的是事物之间的所属关系。

    6.1单继承

    类的继承是指在一个现有类的基础上构建一个新的类,构建出来的新类被称作子类。

    Python面向对象编程:入门到精通,这一篇足以?_基础_04

    ⬅️波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承狗➡️

    Python程序中,继承使用如下语法格式标注:

    ⏪语法格式⏩

    class 子类名(父类名)

    假设有一个类为A,A派生出来了子类B,示例如下:

    ⏪语法格式⏩

    class B(A)
    class A(object)

    ⚠️默认是继承自object的⚠️

    6.2 多继承

    现实生活中,一个派生类往往会有多个基类。比如沙发床是沙发和床的功能的组合,这都是多重继承的体现。

    ⚓️Python支持多继承,多继承就是子类拥有多个父类,并且具有它们共同的特征,即子类继承了父类的方法和属性。⚓️

    Python面向对象编程:入门到精通,这一篇足以?_基础_05

    ⬅️水鸟拥有了鱼和鸟的特征 ➡️

    多继承可以看做是单继承的扩展,语法格式如下:

    ⏪语法格式⏩

    class 子类名(父类1,父类2…)

    ⬅️如果子类继承的多个父类间是平行的关系,子类先继承的哪个类就会调用哪个类的方法。➡️

    7️⃣多态????????????

    ⏬ 定义⏬

    多态的概念其实不难理解,它是指对不同类型的变量进行相同的操作,它会根据对象(或类)类型的不同而表现出不同的行为。

    7.1Python中多态的作用

    让具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容(功能)的函数。

    7.2Python中多态的特点

    ????1、只关心对象的实例方法是否同名,不关心对象所属的类型;

    ????2、对象所属的类之间,继承关系可有可无;

    ????3、多态的好处可以增加代码的外部调用灵活度,让代码更加通用,兼容性比较强;

    ????4、多态是调用方法的技巧,不会影响到类的内部设计。

    ⏪语法格式⏩

    ⌛️A类:

    class A(object):
    def test(self):
    print("--A--test")

    ⏳B类:

    class B(A):
    def test(self):
    print("--B--test")

    ????代码展示 ????

    class A(object):
    def test(self):
    print("--A--test")
    class B(A):
    def test(self):
    print("--B--test")
    def func(temp):
    temp.test()
    a = A()
    b = B()
    func(a)
    func(b)
    # --A--test
    # --B--test

    8️⃣类属性和实例属性????????????

    8.1类属性

    ⏰​​类属性是类所拥有的属性​​,它需要在类中进行显示地定义(位于类内部,方法的外面),它被所有类的实例对象所共有,在内存中只存在一个副本。

    ⏪语法格式⏩

    class Cat(object):
    #类属性
    num = 0

    8.2实例属性

    ⏰通过​​“实例.属性”​​添加属性的属性都是实例属性。

    ⏪语法格式⏩

    def __init__(self):
    #实例属性
    self.age = 1

    9️⃣类方法和静态方法

    9.1类方法

    ????使用修饰器 @classmethod来标识类方法????

    ⏪语法格式⏩

    class 类名:
    @classmethod
    def 类方法名(cls):
    方法体

    ????​​要想调用类方法,既可以通过对象名调用类方法,又可以通过类名调用类方法​​,这两种方法没有任何区别。

    9.2静态方法

    ????使用修饰器 @staticmethod来标识静态方法????

    class 类名:
    @staticmethod
    def 静态方法名():
    方法体

    ✳️静态方法是没有self参数,​​在静态方法中无法访问实例变量​​。

    ????静态方法中不可以直接访问类属性,​​但是可以通过类名引用类属性​​。

    ✴️​​静态方法跟定义它的类没有直接关系​​,只是起到了类似函数的作用。

    ????本章小结----知难易????????????

    ????????本章首先介绍了面向对象编程的基本知识,包括面向对象概述、类和对象、根据类创建对象,然后介绍了 ​​构造方法和析构方法​​​ 的使用,然后又介绍了​​self和__str__​​方法的简单使用,最后开发了一个反恐游戏的案例。通过对本章内容的学习,大家对面向对象应该有初步的了解,为后面面向对象深入的学习做好铺垫。

    ????然后介绍了面向对象编程的知识,包括面向对象的三大特征(​​封装、继承和多态​​),然后介绍了类属性和实例属性,最后介绍了类方法和静态方法。通过对本章内容的学习,大家应该对面向对象有了深入地理解,为面向对象编程埋下了伏笔。????


    ????????????人生是跋涉,也是旅行;是等待,也是重逢;是探险,也是寻宝;是眼泪,也是歌声!


    ???????????? 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨

    ????????????如果你喜欢的话,就不要吝惜你的一键三连了~

    Python面向对象编程:入门到精通,这一篇足以?_基础_06

    Python面向对象编程:入门到精通,这一篇足以?_python_07



    网友评论