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
原文地址:https://www.cnblogs.com/xiaohei-chen/p/12059224.html