一 变量分类
  1 实例变量
     __init__(self,value)
    self代表实例对象,value代表实例变量
    self.value=value 实例变量的初始化
    实例变量能赋初始化值 __init__本质是一个函数,所以变量的规则完全适用
 2  类变量
    类变量是定义在函数外的变量,可以理解为类的全局变量.类变量可以被实例继承修改
3  调用方式
   公有调用
   私有调用
   class a:
 

__d='wewa' //私有类变量
   c='we' //类变量
  def __init__(self,a):
    self.__name__=name //私有变量
    self.a=a //实例变量
  def func(self):
     print(self.a)//内部调用变量
     print(self._name)//内部调用私有变量  
  b=a('awe')
  b.a//外部调用实例变量
  b.func()//调用函数
  b.c//调用类变量

二  方法
  1 实例方法
  2 静态方法
    定义 @staticmethod
    调用 类.method(推荐)可以被实例继承调用
    场景 如果方法中无需调用实例化变量的值
  3 类方法
    定义 @classmethod
    注意 cls参数代表带入类本身
    方法转属性
    定义 @proprety
    注意 只能有self 不能加参数
    调用 object.a不加括号
    场景 有返回值而且无需参数场景

class test(object):
    def __init__(self,a):
    self.a=a
    def fun(self):
    print(self.a)
    @staticmethod //定义静态方法
     def display(): //无self
    print("23")
    @classmethod //定义类方法
    def aaa(cls): // cls
    print("2323")
    def __aaa(self)://定义私有方法
    print(self.a)
   @proprety://将方法定义为属性
   def ccc(self):
     return 3
   b=test('wae')
   b.fun() //调用实例方法
  test.display() //定义静态方法
  test.aaa() //定义
   b.ccc//这里已经变为了属性

三   继承

大概有两种情况
  1 实例化调用父类相关属性
      实例.变量 实例.方法
  2 子类函数内部调用父类相关
     变量super().__init__
     函数super().method //按照继承的顺序找下一个类
  3 函数重写
    当子类重写了父类的方法,默认是调用自身的方法。
 4 总结 

   0 每个类都有构造函数,继承类在生成对象的时候,是不会自动调用父类的构造函数的,必须显示进行调用

   1 Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :
   2 有几种情况
      1 是完全继承变量 super().__init__(父类)
      2 需要部分变量初始化值 super().__init__(k1ey='',k2ey=''),规则完全遵循函数参数赋值规则
     3 调用父类函数 super().function(x)
  3 示例代码

class Root(object):
     def __init__(self,x,y=0):
       self.x = x
       self.y = y
     def add(self, x):
        y = x + 1
        print(y)   class A(Root):
      def __init__(self):
         super().__init__(x='1232133')
         print('实例化时执行')
      def fund(self,x):
         super().add(x)      test = A() # 实例化类
      test.add(12)

返回值调用方式 return/yeild