从这一篇开始,我们计入面向对象编程的学习。 那什么是面向对象编程呢? 首先我们先简单介绍一下一些基本定义:
面向对象编程:一种编程范式
编程范式:面向过程/面向对象
数据结构:列表,字典什么的 用来高效存储数据的结构
算法:编程逻辑
核心是过程二字,过程指的是解决问题的步骤。-- 设计一条流水线,机械式的思维方式。把问题分解后逐步处理
什么是对象:对象就是特征与技能的结合体
面向对象编程有3大特性:
面向对象和面向过程各有所长,所以看情况来选择方式
类就是一系列对象相似的特征与技能的结合体
强调:站在不同的角度,得到的分类是不一样的
在现实世界中:现有的对象,后有类
在程序中:先定义类,后生成(实例化)对象
分析的时候可以先从对象入手,例如下面的学生类:
class Student:
school = 'aaa' # 特征:变量
def learn(self): # 技能:函数
print('learning')
def eat(self): # 这个self就是用来自动传参,不一定非要用self,用x什么的也行,只是约定俗成用self
print('eating')
def sleep(self):
print('sleeping')
stu1 = Student() # 类的返回就是个对象:实例化
stu2 = Student()
类在定义的阶段,类就已经执行了。
函数定义的阶段,不会执行,只有调用了才会执行。
类的属性操作(增删改查)及实例化:
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的对象
第七章 面向对象(1):面向对象编程及类(class)的介绍
原文:https://www.cnblogs.com/py-xiaoqiang/p/11210394.html