一、类
1.类变量
定义类方法 :class 类名:
例如:定义一个类 Car
class Car() :
glass = '特级'
lz = "一级"
def Car_glass(glass):
print(f"这个车子的玻璃是{Car.glass}")
#调用类变量
print(Car.glass)
#调用类里面方法,需要先实例化一个类
CarA = Car()
#调用类方法
CarA.Car_glass()
#更新类变量
Car.glass ='AA级'
CarB = Car()
CarB.Car_glass()
2.实例变量&构造器
class Car() :
#类变量
glass = '特级'
#lz = "一级"
#构造器 ,,定义实例变量
def __init__(self,lz1):
self.lz=lz1
def Car_glass(glass):
print(f"这个车子的玻璃是{Car.glass}")
def Car_lz(self):
print(f"这个车子的轮子是{self.lz}")
#更新实例变量
lz='AAA级'
CarB = Car(lz1=lz)
CarB.Car_glass()
CarB.Car_lz()
类变量和实例变量切换
引用类变量 采用:类名.变量名
,引用实例变量采用:self.变量名
class Car() :
#类变量
glass = '特级'
lz = "一级"
#构造器 ,,定义实例变量
def __init__(self,lz1):
self.lz=lz1
def Car_glass(self):
#使用类变量传参
print(f"这个车子的玻璃是{Car.lz}")
#print(f"这个车子的轮子是{self.lz}")
def Car_lz(self):
#使用实例变量
print(f"这个车子的轮子是{self.lz}")
# print(f"这个车子的轮子是{self.lz1}")
#更新实例变量
lz='AAA级'
CarB = Car(lz1=lz)
CarB.Car_glass()
CarB.Car_lz()
二、类的继承
1.继承使用方法
class 新的类名(被继承的类名):
内容
例如:继承Car,新的类为Car_new,暂对类的类型不做改变 ,
class Car() :
#类变量
glass = '特级'
lz = "一级"
#构造器 ,,定义实例变量
def __init__(self,lz1):
self.lz=lz1
def Car_glass(self):
print(f"这个车子的玻璃是{Car.lz}")
def Car_lz(self):
print(f"这个车子的轮子是{self.lz}")
#更新实例变量
#lz='AAA级'
#CarB = Car(lz1=lz)
#CarB.Car_glass()
#CarB.Car_lz()
class Car_new(Car):
pass
lz='AAA级'
CarB = Car_new(lz1=lz)
CarB.Car_glass()
CarB.Car_lz()
重新方法,调用,原则,如果调用方法中子类更新了该方法,使用继承后的方法,如果没有更新的方法,则使用父类中原有方法。继承中如果同时重写了构造器,调用中同样,新的构造器满足使用,则调用新的构造器,如果不满足使用,则使用父类中的构造器
class Car() :
#类变量
glass = '特级'
lz = "一级"
#构造器 ,,定义实例变量
def __init__(self,lz1):
self.lz=lz1
def Car_glass(self):
print(f"这个车子的玻璃是{Car.lz}")
def Car_glass_self(self):
print(f"这个车子的玻璃是{self.lz}")
def Car_lz(self):
print(f"这个车子的轮子是{self.lz}")
class Car_new(Car):
def __init__(self,KK):
self.lz=KK
def Car_lz(self):
print(f"这个车子的轮子是{self.lz},重写后的方法")
CarB = Car_new(KK='KKAAA级')
CarB.Car_glass() #该方法没有重新,调用父类的方法
CarB.Car_glass_self() #重写了构造器,但该方法为父类方法,继承中重写的方法不满足该方法,继续调用父类方法中的构造器
CarB.Car_lz()#重新方法及构造器,该方法中需要使用到新的构造器,调用新的构造器
2.私有方法
私有方法只能用于父类,无法用于子类,子类无法继承该类方法。
私有方法无法通过调用父类或子类方法调用,只能在父类方法内部调用
使用方法:方法名前加__ 例如 def __car_private :
class Car() :
#类变量
glass = '特级'
lz = "一级"
#构造器 ,,定义实例变量
def __init__(self,lz1):
self.lz=lz1
def __Car_lz(self):
print(f"这个车子的轮子是{self.lz},私有方法")
def Car_glass(self):
self.__Car_lz() #私有方法只能在父类的方法里面进行调用
def Car_glass_self(self):
print(f"这个车子的玻璃是{self.lz}")
class Car_new(Car):
def __init__(self,KK):
self.lz=KK
def Car_lz(self):
print(f"这个车子的轮子是{self.lz},重写后的方法")
CarA = Car("A级")
CarA.Car_glass() #该处可以调用私有方法,通过调用Car_glass 方法,调用私有方法
CarA.__Car_lz() #该处报错,因私有方法只能在父类内部的方法进行调用和使用
3.私有变量
私有变量如私有方法,只能在父类里面进行使用,无法直接调用父类或子类进行使用
私有变量命名以__ 开头,如 :__car
class Car() :
#类变量
glass = '特级'
lz = "一级"
__seat ="双人座椅"
#构造器 ,,定义实例变量
def __init__(self,lz1):
self.lz=lz1
def __Car_lz(self):
print(f"这个车子的轮子是{self.__seat},私有方法,私有变量")
def Car_glass(self):
self.__Car_lz() #私有方法只能在父类的方法里面进行调用
def Car_glass_self(self):
print(f"这个车子的玻璃是{self.__seat},私有变量")
class Car_new(Car):
def __init__(self,KK):
self.lz=KK
def Car_lz(self):
print(f"这个车子的轮子是{self.lz},重写后的方法")
CarA = Car("A级")
CarA.Car_glass() #该处可以调用私有方法,通过调用Car_glass 方法,调用私有方法,私有变量
CarA.Car_glass_self() #该处可以调用私有方法,通过调用Car_glass_self方法,私有变量
调用结果: