zoukankan      html  css  js  c++  java
  • 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. 一个类可以实例化多个对象

  • 相关阅读:
    ASP.NET Web API 控制器执行过程(一)
    ASP.NET Web API 控制器创建过程(二)
    ASP.NET Web API 控制器创建过程(一)
    ASP.NET Web API WebHost宿主环境中管道、路由
    ASP.NET Web API Selfhost宿主环境中管道、路由
    ASP.NET Web API 管道模型
    ASP.NET Web API 路由对象介绍
    ASP.NET Web API 开篇示例介绍
    ASP.NET MVC 视图(五)
    ASP.NET MVC 视图(四)
  • 原文地址:https://www.cnblogs.com/hql1117/p/11139290.html
Copyright © 2011-2022 走看看