面向对象
面向过程与面向对象的比较:
1、面向过程编程
核心是”过程“二字,过程指的是解决问题的步骤,即先干什么再干什么
基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式
优点:复杂的问题流程化、进而简单化
缺点:可扩展性差
2、面向对象
核心”对象“二字,对象指的是特征与技能的结合体,
基于该思想编写程序就好比在创造一个世界,你就是这个世界的上帝,是一种
上帝式的思维方式
优点:可扩展性强
缺点:编程的复杂度高于面向过程
一、面向对象
面向对象核心是对象二字,对象是特征与技能的结合体,基于面向对象编写程序
就好比在创造 一个世界,你就是这个世界上帝,也就说,上帝需要创造出一个个的具体
存在的对象,程序的执行就是由对象直接交互完成
优点:可扩展性强
缺点:编程的复杂度远高于面向过程
对象是特征与技能的结合体,在程序中
特征:变量
技能:函数
类是一系列对象相似的特征与技能的结合体
2、定义类
1、在现实生活中:现实中对象-----总结归纳------》现象中类
2、在程序中:必须先定义类------》调用类------》对象
class OldboyStudent:
# 对象们相似的特征
school="oldboy"
# 对象们相似的技能
def learn(self):
print('is learning')
在类定义阶段就会立刻执行类体代码,会产生类的名称空间,将执行类体代码过程中产生的名字
存放于类的名称空间,如何查看
OldboyStudent.__dict__
OldboyStudent.__dict__['school']
OldboyStudent.school # OldboyStudent.__dict__['school']
OldboyStudent.learn
OldboyStudent.learn(123)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #python为类内置的特殊属性 2 类名.__name__# 类的名字(字符串) 3 类名.__doc__# 类的文档字符串 4 类名.__base__# 类的第一个父类(在讲继承时会讲) 5 类名.__bases__# 类所有父类构成的元组(在讲继承时会讲) 6 类名.__dict__# 类的字典属性 7 类名.__module__# 类定义所在的模块 8 类名.__class__# 实例对应的类(仅新式类中)
''''
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('======>') #在定义阶段就就已经执行,不同于之前学的函数
# 注意:在定义类的阶段会立刻执行类体内的代码,然后将产生的名字存放于类名称空间中
# print(OldboyStudent.__dict__)
# print(OldboyStudent.__dict__['school']) #类名.__dict__# 类的字典属性类的字典属性=》Oldboy
print(OldboyStudent.__dict__['learn']) #打印为类中函数的内存地址=》<function OldboyStudent.learn at 0x0000000002202B70>
# OldboyStudent.__dict__['learn'](123) #类的字典属性,函数名加括号即调用类中的函数=》is learning...
# 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__)
python之基础知识大全