python|【python基础教程】面向对象初识

前言
面向对象编程:Object Oriented Programming,简称OOP,是一种程序设计思想。
需要注意的是,与之对应的是面向过程编程思想。实际上,能够使用面向对象编程思想实现的程序,也都能通过面向过程完成。只是看哪种思想更适合当前开发需求
python|【python基础教程】面向对象初识
文章图片

面向过程与面向对象区别
面向过程:根据业务逻辑从上到下写代码
面向对象:将数据与函数绑定到一起,进行封装。减少重复代码的重写过程

初识面向对象

  • 面向对象概念及术语
    • 类与对象介绍
      • 类中的成员

面向对象概念及术语
概念 描述
类(Class) 用来描述具有相同属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。其中的对象被称作类的实例。
对象 也称实例。通过类定义的初始化方法,赋予具体的值,成为一个"有血有肉的实体"。
实例化 创建类的实例的过程或操作。
实例变量 定义在实例中的变量,只作用于当前实例。
类变量 类变量是所有实例公有的变量。类变量定义在类中,但在方法体之外。
数据成员 类变量、实例变量、方法、类方法、静态方法和属性等的统称。
方法 类中定义的函数
静态方法 类方法是将类本身作为对象进行操作的方法。
方法重写 如果从父类继承的方法不能满足子类的需求,可以对父类的方法进行改写,这个过程也称override。
封装 将内部实现包裹起来,对外透明,提供api接口进行调用的机制
继承 即一个派生类(derived class)继承父类(base class)的变量和方法。
多态 根据对象类型的不同以不同的方式进行处理。
类与对象介绍 类
类是抽象的概念,仅仅是一个模板。用于,描述具有相同属性和方法的对象的集合。比如"编程语言"是一个类
类的构成
类由3个部分构成
类的名称:类名
类的属性:一组数据
类的方法:允许对类进行操作的方法
类的定义
python中使用class关键字来定义类
类名通常采用驼峰式命名方式,尽量让字面意思体现出类的作用
class 类名:
对象(实例)
某一个具体事物的存在,在现实世界中可以是看得见摸得着的。比如"python"就是一个对象
创建对象(实例化对象)
python中,可以根据已经定义的类去创建一个个对象
创建对象的格式:
对象名 = 类名()
class LagicStudents(object): def study(self, language):# 实例方法有一个参数self,指的是实例对象 print(language)l1 = LagicStudents() l2 = LagicStudents()

通过一个类可以创建无数个对象,每个对象在内存中都会开辟新的空间
?调用类中的实例化对象
①使用 对象名.方法名(参数) 调用的方式,不需要传递self。
②使用 类名.方法名(self, 参数) 的方式,不会自动给 self 传参,需要手动的指定self。
class LagicStudents(object): def study(self, language):# 实例方法有一个参数self,指的是实例对象 print(language)l1 = LagicStudents() # 通过对象名.方法名(参数)调用 l1.study('python')# 通过类名.方法名(self,参数),需要手动传参 LagicStudents.study(l1, 'python')

举个栗子
?创建类:学生类
?创建对象:居然
?在类中定义方法输出:居然学习python
class LogicStudents: def study_python(self): print("居然学习python")jr = LogicStudents()# 实例化的过程 jr.study_python()# 通过对象.方法()去调用类中的方法

类与对象的关系
?类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象。
?使用同一个类,能够创建出很多对象。
?类中定义了什么属性和方法,对象中就有什么属性和方法。
?不同对象对应的属性值也会不同。
总结:
?创建对象的过程就是实例化
?通过对象.方法()调用类中的方法
?self参数
self表示当前对象
self并不是一个关键字,其实可以是任意的标识符,为了表达代表的是当前对象自己,习惯使用self表示
调用实例函数的时候,self不需要手动传参,系统会自动传递当前的对象
哪个对象调用了方法,方法里的self指的就是谁。
通过 self.属性名 可以访问到这个对象的属性。
通过 self.方法名() 可以调用这个对象的方法。
类中的成员
类属性
?访问的两种方法
①通过类名.属性名访问
②通过实例对象.属性名访问
class LogicStudents(): students_num = 100# 类属性sn = LogicStudents()print(LogicStudents.students_num)# 通过类名.类属性访问 print(sn.students_num)# 通过实例对象.类属性访问

【python|【python基础教程】面向对象初识】以上就是python基础教程之面向对象初识,如果有改进的建议欢迎在评论区或者私信留言奥~
人生苦短,我用python
python|【python基础教程】面向对象初识
文章图片

    推荐阅读