python学习——1.8类&类继承&私有方法&私有变量

一、类

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方法,私有变量

调用结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值