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)
类的调用

 

posted @ 2018-04-10 20:17  木夂口  阅读(140)  评论(0编辑  收藏  举报
levels of contents