第七章 面向对象(1):面向对象编程及类(class)的介绍

从这一篇开始,我们计入面向对象编程的学习。 那什么是面向对象编程呢? 首先我们先简单介绍一下一些基本定义:

面向对象编程:一种编程范式
编程范式:面向过程/面向对象

数据结构:列表,字典什么的 用来高效存储数据的结构
算法:编程逻辑

  1. 面向过程编成

核心是过程二字,过程指的是解决问题的步骤。-- 设计一条流水线,机械式的思维方式。把问题分解后逐步处理

  • 优点:
    • 把复杂的问题流程化,进而简单化
  • 缺点:
    • 可扩展性差
  1. 面向对象编程-上帝视角:一切皆对象

什么是对象:对象就是特征与技能的结合体

  • 优点:
    • 可扩展性强,
  • 缺点:
    • 编程复杂度高
  • 应用场景:
    • 用户需求经常变化,互联网应用,游戏,企业内部应用

面向对象编程有3大特性:

  1. 继承
  2. 多态
  3. 封装

面向对象和面向过程各有所长,所以看情况来选择方式

7.1 类 class

类就是一系列对象相似的特征与技能的结合体

强调:站在不同的角度,得到的分类是不一样的

在现实世界中:现有的对象,后有类
在程序中:先定义类,后生成(实例化)对象

分析的时候可以先从对象入手,例如下面的学生类:

  1. 分析
  • 在现实世界中:
    • 对象1:王小明
      • 特征:
        • 学校=aaa学院
        • 名字=王小明
        • 性别=男
        • 年龄=12
      • 技能:
        • 学习
        • 吃饭
        • 睡觉
    • 对象2:李晓雨
      • 特征:
        • 学校=aaa学院
        • 名字=李晓雨
        • 性别=女
        • 年龄=11
          技能:
          学习
          吃饭
          睡觉
  • 总结现实世界中的学生类:
    • 相似的特征:
      • 学校="aaa学院"
    • 相似的技能:
      • 学习
      • 吃饭
      • 睡觉
  1. 定义类
class Student:
    school = 'aaa'  # 特征:变量
    
    def learn(self):  # 技能:函数
        print('learning')
        
    def eat(self):  # 这个self就是用来自动传参,不一定非要用self,用x什么的也行,只是约定俗成用self
        print('eating')
        
    def sleep(self):
        print('sleeping')
  1. 产生对象:实例化
stu1 = Student()  # 类的返回就是个对象:实例化
stu2 = Student()

7.2 类如何使用

类在定义的阶段,类就已经执行了。

函数定义的阶段,不会执行,只有调用了才会执行。

类的属性操作(增删改查)及实例化:

class Student:
    school = 'aaa'  # 变量又称-类的数据属性
    
    def learn(self):  # 函数又称-类的函数属性
        print('learning')
        
    def eat(self):
        print('eating')
        
    def sleep(self):
        print('sleeping')
        
    print('=====run=====')  # 测试执行定义类的语句是否执行内部代码

# 查看类的命名空间
print(Student.__dict__)
print(Student.__dict__['school'])  # 可以访问,但是我们可以用python提供的方法访问类的属性
print(Student.__dict__['learn'])  # 可以访问,但是我们可以用python提供的方法访问类的属性

# 访问类的属性:查看类的属性
print(Student.school) 
print(Student.learn) 

# 增加属性
Student.country = 'China'  # 往字典里增加变量
print(Student.country)

# 删除
del Student.country

# 改
Student.school = 'bbb'
Student.school

# 实例化:生成一个对象
stu1 = Student()  # 实例化一个叫做stu1的对象

猜你喜欢

转载自www.cnblogs.com/py-xiaoqiang/p/11210394.html
今日推荐