一 变量分类
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 变量
1 如果自己也定义了 __init__ 方法,那么父类的属性是不能直接调用,调用父类变量采用 super().__init__(参数1,参数2,....)
2 然后搭配实例自定义变量
大概有两种情况
1 实例化调用父类相关属性
实例.变量 实例.方法
2 子类函数内部调用父类相关
变量super().__init__
函数super().method //按照继承的顺序找下一个类
3 函数重写
当子类重写了父类的方法,默认是调用自身的方法。
4 class aa(object):
def __init__(self,a):
self.a=a
def fun(self):
print(666)
class b( aa): //继承父类
def __init__(self,a,bb): 初始调用的变量都要写上
super().__init__(a) //super()调用父类初始化函数
self.bb=bb //定义子类的变量初始化
def fund(self):
print(self.a)
def test(self):
super().fun()//调用父类方法
c=b(1,2)
c.fund()
c.fun() //调用父类方法
标签:__,调用,变量,python,self,基础知识,实例,def