python之路--day18--面向对象编程--类和对象
---恢复内容开始---
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" 相同的技能 学习 选课 '''
##定义程序中的类
class 类名(使用驼峰体):
# 用变量表示特征
#用函数表示技能
#注意:在定义类的阶段会立即执行类体内的代码,然后将产生的名字存放于类名称空间中,
可以通过 类名 . __dict__ 来查看
使用 . 对象名 来 访问类的属性,类中定义的名字,都可以通过 点 来访问
点的本质操作就是__dict__
##调用类
类名加() 就可以调用类
注意:
*********************************实例****************************************
1 #程序中的对象 2 #调用类,或称为实例化,得到对象 3 s1=OldboyStudent() 4 s2=OldboyStudent() 5 s3=OldboyStudent() 6 7 #如此,s1、s2、s3都一样了,而这三者除了相似的属性之外还各种不同的属性,这就用到了__init__ 8 #注意:该方法是在对象产生之后才会执行,只用来为对象进行初始化操作,可以有任意代码,但一定不能有返回值 9 class OldboyStudent: 10 ...... 11 def __init__(self,name,age,sex): 12 self.name=name 13 self.age=age 14 self.sex=sex 15 ...... 16 17 18 s1=OldboyStudent('李坦克','男',18) #先调用类产生空对象s1,然后调用OldboyStudent.__init__(s1,'李坦克','男',18) 19 s2=OldboyStudent('王大炮','女',38) 20 s3=OldboyStudent('牛榴弹','男',78)