zoukankan      html  css  js  c++  java
  • Python 类I

    1.今日内容

    1. 面向过程编程,函数式编程,面向对象编程
    2. 面向对象的结构
    3. 类的基本操作方法
    4. 实例化一个对象
    5. 对象操作类中的属性与方法
    6. 什么是self

    2.具体内容

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

      • 函数及之前的知识点,统称为:面向过程的程序设计
        • 面向过程的程序设计缺点:代码重复率高,可读性差
      • 面向对象:用一个类将相似功能的函数聚合,使代码更加清晰化,合理化
        • 类:相似功能的集合体
        • 对象:类的具体体现
    2. 面向对象的结构

      class 类名:
      	属性
        方法
      
      • 类名要具有描述性,首字母需大写,并且不宜用“_”
    3. 类的基本操作方法

      • __dict__:查看类中所有内容,并以字典形式返回
      class Student:
        
        daily = '学习'
        examination = '考试'
        
        def __init__(self):
          self.n = 'haha'
          self.s = 'heihei'
          
        def work(self):
          print('上课')
          
        def homework(self):
          print('做作业')
      
      • 类名调用类中的属性

      • 使用__dict__

        print(Student.__dict__)
        
        {'__module__': '__main__', '__doc__': '
            此类是构建学生类
            ', 'daily': '学习', 'examination': '考试', '__init__': <function Student.__init__ at 0x109a08b70>, 'work': <function Student.work at 0x109a08d08>, 'homework': <function Student.homework at 0x109a08d90>, '__dict__': <attribute '__dict__' of 'Student' objects>, '__weakref__': <attribute '__weakref__' of 'Student' objects>}
        
        
        print(Student.__dict__.['daily'])
        
        学习
        
      • 万能的点 .(增删改查)

        print(Student.daily)   #查
        Student.cloth = '蓝色'  #增
        Student.examination = '不考试'  #改
        del Student.examination  #删
        
      • 类名调用类中的方法

      • 类名.方法名() (但工作中一般不会这样使用)

      Student.work()
      
    4. 实例化一个对象

      • 类名() :实例化一个对象,它的本质是每个类中的一个特殊函数

        class Student:
          
          daily = '学习'
          examination = '考试'
          
          def __init__(self,n,a,h):
            self.name = n
            self.age = a
            self.habby = h
            
          def work(self,c):
            self.cloth = c
            print(f'{self.name}上课')
            
          def homework(self):
            print('做作业')
            
        xiaohei = Student('小黑',18,'打球')
        xiaoming = Student('小明',18,'打球')
        print(xiaohei)#<__main__.Student object at 0x1031896d8>
        print(xiaoming)#<__main__.Student object at 0x4565896d8>
        
        • Remark:
          • 类的不同实例化在内存中对应不同的内存地址,即为互不影响的实例,即类中的属性方法均相同
          • 实例化对象在内存中发生了三件事:
            • 内存中创建一个对象空间
            • 自动执行__init__方法,并且将对象空间传给self参数
            • 执行__init__方法,并将对象空间封装其属性
    5. 对象对 类(查看)与对象(操作)中的属性与方法的使用

      • 对象操作对象空间的属性 万能的点
      class Student:
        
        daily = '学习'
        examination = '考试'
        
        def __init__(self):
          self.n = 'haha'
          self.s = 'heihei'
          
        def work(self):
          print('上课')
          
        def homework(self):
          print('做作业')
      obj = Student()
      obj.n = 'hahei' #改
      obj.age = 18    #增
      print(obj.s)		#查
      del obj.n				#删
      
      • 对象调用(查看)类中的属性
      class Student:
          '''
          此类是构建学生类
          '''
          daily = '学习'
          examination = '考试'
      
          def __init__(self,n,a,h):
              self.name = n
              self.age = a
              self.habby = h
      
          def work(self):
              print('每天要上课')
      
          def homework(self):
              print('家庭作业')
              
      xiaohei = Student('小黑',18,'打球')
      
      • 对象调用类中的方法
      xiaohei.work()
      
    6. 什么是self

      • Self :每个类中方法的第一个位置参数,通过实例化一个对象执行此方法,解释器就自动的将此对象空间当做实参传给self
      • 类中的所有方法的第一个参数,一般都命名给self
  • 相关阅读:
    C#库
    大话设计模式--简单工厂模式
    weka平台下手动造.arff的数据
    NIM博弈的必胜取法
    求一个全排列函数: 如p([1,2,3])输出:[123],[132],[213],[231],[312],[321]. 求一个组合函数 如p([1,2,3])输出:[1],[2],[3],[1,2],[2,3],[1,3],[1,2,3]
    哥德巴赫猜想
    C#格式化输出
    meta文件里指定资源
    chromatic aberration
    uber shader
  • 原文地址:https://www.cnblogs.com/xiaohei-chen/p/12059224.html
Copyright © 2011-2022 走看看