29、类与对象基础

作者: 唯老 | 来源:发表于2019-03-22 15:59 被阅读19次

    一、类

    1、什么是类

    在 python 中所有类型的数据都可以看成对象, 包括我们我们以前学习的所有的内置类型int, float等.

    像这些 int, float, list这些数据类型, 就是我们面向对象中的类

    我们可以根据需要自定义很多类型出来, 这些自定义的类型也是我们面向对象中的类

    2、分类

    python3中统一都是新式类, pyhon2中才分新式类与经典类

    1. 经典类
    2. 新式类

    3、自定义类的组成

    image

    4、语法

    1. 经典类格式
      class 类名:
      #静态字段
      属性=值
      #私有静态字段(外部无法访问)
      _属性=值
       #私有静态字段且子类无法覆盖
      __属性=值
      def __init__(self,参数1,参数2,...):
          """"初始化方法(构造方法)"""
          #普通字段
          self.字段 = 参数1
          self.字段 = 参数2
      def 方法名(self,参数1,参数2,...):
          '''无返回值的方法'''
      def 方法名(self,参数1,参数2,...):
          '''有返回值的方法'''
          retrun 返回值
       @property  
       def 属性名(self):
          return obj
      
    2. 新式类格式
      class 类名(object):
      #静态变量
      属性=值
      #私有变量
      _属性=值
       #用来避免子类覆盖其内容
      __属性=值
      def __init__(self,参数1,参数2,...):
      """"初始化方法(构造方法)"""
      self.变量名 = 参数1
      self.变量名 = 参数2
      def 方法名(self,参数1,参数2,...):
       pass
      

    5、举个栗子

    1. 栗子1
      class Person():
          def __init__(self, name):
              self.name = name
          def say(self):
              print(self.name + ":在说话")
          def run(self):
              print(self.name + ':带着小姨子跑路了')
      if __name__ == '__main__':
          person = Person('小明')
           print(person.name)
          person.say()
          person.run()
      
    2. 说明


      image
    3. 内存分析图


      image
    4. 执行步骤
      1、将类加载进内存
      2、将类变量加载进类的内存
      3、将init方法的地址加载进类的内存
      4、将普通方法方法的地址加载进类的内存
      5、实例化对象分配对象内存地址
      6、将实例变量初始化加载进对象内存
    5. self:
      在实例化时自动将对象/实例本身传给__init__的第一个参数,你也可以给他起个别的名字,但是正常人都不会这么做。
      因为你瞎改别人就不认识
      作业
    6. Employee
      • 需求:定义一个员工类Employee
      • 自己分析出几个成员,然后给出成员变量
        • 姓名name,工号id,工资salary
      • 以及一个显示所有成员信息的方法。并测试。
        • work
    7. 定义商品类
      • 需求:定义个商品类 ShopInfo
      • 自己分析出几个成员,然后给出成员变量
        • 商品shop_id, 商品名称 name,当前价格 price(商品价格价格大于0),
      • 在控制台显示所有的商品信息

    相关文章

      网友评论

        本文标题:29、类与对象基础

        本文链接:https://www.haomeiwen.com/subject/snlrvqtx.html