• Python-------面向对象之初识


    面向对象之初识

    1. 面向过程编程vs函数式编程vs面向对象编程

      s1 = 'fdskljfsda'
      count = 1
      for i in s1:
      	count += 1
      	
      l1 = [1,2,3,4,5]
      count = 1
      for i in l1:
      	count += 1
      	
      
      def my_len(a):
      	count = 1
      		for i in a:
          count += 1
      提高代码的可读性,减少了代码的重复性....
      上面统称为面向过程式编程.
      
      
      面向过程式编程:
      好处: 出色的完成你之前布置的所有的需求.
      坏处: 但凡更改或者增加一条需求,可能整个项目都随之改变.
      
      
      
    2. 面向对象的结构

      1. 类是相似功能的集合体.
      2. 类 你要站在上帝的角度去考虑问题.
      类: 具有相似功能和特性的一类事物.
      对象:类的具体体现.
      一定要有宏观的概念,区分类与对象.
      类的第二个优点: 你要站在上帝的角度去考虑,类一个公共模板,对象是从这个公共的模板产出的.
      结构上分析:
      class Student:
          daily = '学习'
          examination = '考试'
          def work(self):
              print('每天要上课')
          def homework(self):
              print('家庭作业')
      Human 类名要具有描述性,类名首字母大写,类名不宜用_
      
    3. 从类名的角度使用类

      类名调用类中的属性

      类名调用类中的方法

       class Student:
           """
          此类是构建学生类
          """
           daily = '学习'
           examination = '考试'
      
           def work(self):
               print('每天要上课')
           def homework(self):
               print('家庭作业')
       类名的角度调用类中的属性.
      
       1. 查看类中的所有的内容.  类名.__dict__只用于获取类中的全部.
       print(Student.__dict__)
       print(Student.__dict__['daily'])
       
       2. 万能的 .点.
       print(Student.daily)  # 查
       Student.cloth = '校服'  # 增
       print(Student.__dict__)
       Student.examination = '不考试!'  # 改
       print(Student.examination)
       del Student.daily  # 删
       print(Student.__dict__)
      
       一般类中的属性都是通过类名.的方式去操控的.
      
       类名的角度调用类中的方法.(一般类中的方法(除去类方法,静态方法外)不通过类名调用)
       Student.work(5565)  # 工作中不用类名调用
      
      
    4. 实例化一个对象

      实例化对象发生了三件事

      对象调用对象的属性

      对象调用类中的属性

      对象调用类中的方法

      class Student:
          """
          此类是构建学生类
          """
          daily = '学习'
          examination = '考试'
          def __init__(self,n,a,h):
      
              # self.n = '小黑'
              # self.sex = '随便'
              self.name = n
              self.age = a
              self.hobby = h
      
          def work(self,c):
              # self.color = '绿色'
              self.color = c
              print(f'{self.name}每天要上课')
      
          def homework(self):
              # 利用self 对象空间,为所欲为
              print('家庭作业')
      
      # obj = Student()  # 类名() 过程就叫做实例化过程,实例化一个对象
      # print(obj)  # 对象,实例
      # obj1 = Student()
      # print(obj1)
      
      # obj = Student()
      # print(obj)
      
      # 实例化一个对象时发生了三件事:
      # 1. 在内存中创建一个对象空间.
      # 2. 自动执行__init__方法,并且将对象空间传给self参数.
      # 3. 执行__init__方法里面的代码,给对象空间封装其属性.
      
      # 从对象角度研究类:
      # 对象操作对象里面的属性.
      # obj = Student()
      # print(obj)
      # 对象查看全部属性
      # print(obj.__dict__)
      
      # 对象可以操作对象空间的属性  万能的点
      # obj = Student()
      # # obj.age = '29'  # 增
      # # del obj.n  # 删
      # # obj.sex = '女'# 改
      # print(obj.n)  # 查
      # print(obj.__dict__)
      
      # liye = Student('小黑',21,'洗头')
      # mc_sq = Student('骚强',18,'高端会所')
      # print(liye.__dict__)
      # print(mc_sq.__dict__)
      
      # 对象查看类中的属性.
      # mc_sq = Student('骚强',18,'高端会所')
      # # print(mc_sq.daily)
      # mc_sq.daily = '骚麦'
      # print(mc_sq.daily)
      # print(mc_sq.__dict__)
      
      
      # 对象调用类中的方法
      liye = Student('小黑',21,'洗头')
      # print(liye.__dict__)
      # liye.work()
      liye.work('绿油油')
      print(liye.__dict__)
      
    5. 什么是self?

       self 就是类中方法的第一个位置参数,
       如果通过对象执行此方法,解释器就自动的将此对象空间当做实参传给self.
       约定俗称: 类中的方法第一个参数一般都设置成self.
      
    6. 一个类可以实例化多个对象

  • 相关阅读:
    3d角色模型 制作 全过程 。3d max 。3d role model making process.3d Max
    Cocos2d-X开发教程-捕鱼达人 Cocos2-x development tutorial
    unity3d 给游戏添加音源 Unity3d adds a sound source to the game
    安卓 运行、调试 配置 android Run/debug configurations
    Gradle 同步 已经开始 Gradle sync started
    更新 是 可用的 针对 安卓 软件开发包和工具 Updates are available for android software development packages and tools
    [Educational Codeforces Round 16]A. King Moves
    他们在军训,我在搞 OI(一)
    [POJ1383]Labyrinth
    [POJ1157]LITTLE SHOP OF FLOWERS
  • 原文地址:https://www.cnblogs.com/hql1117/p/11139290.html
Copyright © 2020-2023  润新知