zoukankan      html  css  js  c++  java
  • 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)
    类的调用
  • 相关阅读:
    前缀和
    不用加减乘除做加法
    数组中重复的数字
    滑动窗口的最大值
    矩阵中的路径
    Redis 和 Memcached 的区别 Tair
    机器人的运动范围
    汉诺塔问题
    洗牌算法
    斐波那契查找算法(黄金分割查找算法)
  • 原文地址:https://www.cnblogs.com/guodengjian/p/8782384.html
Copyright © 2011-2022 走看看