Python 类I

Posted xingchenck

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Python 类I的主要内容,如果未能解决你的问题,请参考以下文章

以下代码片段的算法复杂度

vs 2010代码片段

vs 2010代码片段

这个代码片段有啥作用?

js 常用代码片段

常用python日期日志获取内容循环的代码片段