一、面向对象编程
1、面向过程编程
核心是”过程“二字,过程指的是解决问题的步骤,即先干什么再干什么
基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式
优点:复杂的问题流程化、进而简单化
缺点:可扩展性差
2、面向对象
核心”对象“二字,对象指的是特征与技能的结合体,
基于该思想编写程序就好比在创造一个世界,你就是这个世界的上帝,是一种
上帝式的思维方式
优点:可扩展性强
缺点:编程的复杂度高于面向过程
二、对象与类
1、对象是特征与技能的结合体,那类就是一系列对象相同的特征与技能的结合体
2、在现实世界中:一定先有对象,后来随着人类文明的发展总结出的类;对象是具体存在的,而类只是一种抽象概念
3、在程序中,务必保证:先定义类,后调用类来产生对象
#根据现实世界中的对象归纳现实世界的类,然后在程序中定义类,之后调用这个定义的类才产生程序中的对象
现实生活中的对象:
对象1:
特征:
school="Oldboy"
name="马冬梅"
age=18
sex="female"
技能:
学习
选课
对象2:
特征:
school="Oldboy"
name="甜蜜蜜"
age=21
sex="male"
技能:
学习
选课
对象3:
特征:
school="Oldboy"
name="原石开"
age=22
sex="male"
技能:
学习
选课
现实生活中的老男孩学生类:
相同的特征
school="Oldboy"
相同的技能
学习
选课
1、程序中的类
class OldboyStudent: #用驼峰体表示类名, 变量名不推荐驼峰体
# 用变量表示特征
school="Oldboy"
# 用函数表示技能
def learn(self):
print('is learning...')
def choose(self):
print('choose course...')
注意:在定义类的阶段会立刻执行类体内的代码,然后将产生的名字存放于类名称空间中
#名称空间用字典存数据
print(OldboyStudent.__dict__) # . 后面的是属性
print(OldboyStudent.__dict__['school'])
print(OldboyStudent.__dict__['learn'])
OldboyStudent.__dict__['learn'](123)
print(OldboyStudent.school) # OldboyStudent.__dict__['school']
print(OldboyStudent.learn) # OldboyStudent.__dict__['learn']
OldboyStudent.learn('xxx')
OldboyStudent.learn('xxx')
OldboyStudent.country='China'
OldboyStudent.school='偶的博爱'
del OldboyStudent.country
print(OldboyStudent.__dict__)
f.flush() 内存的东西存入硬盘
来源:https://www.cnblogs.com/yangli0504/p/8781336.html