python3类中的Cat变量怎么用
创始人
2024-11-19 14:03:07
0次

这里定义了Cat类和它的子类Blackcat,主要说明两个主题:私人属性、方法的继承与覆盖

私人属性的使用是受到一定限制的,这里主要说明在哪些地方可以用,哪些地方不能调用

因为子类继承父类时,会将父类的所有方法都继承过来,但是如果在子类中定义了一个和父类同名的方法,则会将父类的方法覆盖下去,__init__也是如此

定义类

class Cat(Animal):
    
    def __init__(self, weight): # 覆盖了父类的__init__,所以定义实例时不需要指定name和age
        self.__weight = weight
        self._weight = weight + 1
        self.weight = self._weight + 1
    
    def get_myweight(self):
        print("My weight is", self._weight, "kg")
    
    def get_trueweight(self):
        print("Actually the cat's weight is",self.__weight)
    
    @staticmethod
    def print_cat():
        print("这个类是Animal类的子类,也是Blackcat类的父类")
        print("Cat类和Blackcat类结合,主要用于讲解私人属性、方法的继承与覆盖")
        
        print("weight是普通属性,可以在外部访问,即用类调用属性获得,可以被子类内部调用")
        print("_weight这样前面加一个下划线表示希望你不要在外部访问它,但是还是可以访问的,可以被子类内部调用")
        print("__weight这样加两个下划线的是不允许外部访问的,只可以在类中被调用,不可以被子类内部调用")
        
        print("__init__在子类中定义则覆盖了父类中的__init__,不需要指定父类中的属性,也无法调用父类的属性")
        print("在子类中实现和父类同名的方法,也会把父类的方法覆盖掉")
        
class Blackcat(Cat):
    
    def get_weight(self):
        print("My weight is", self.weight)
    
    def get_weight_again(self): # 可以
        print("Actuall my weight is", self._weight)
        
    def get_true_weight(self): # 这个方法因为无法调用self.__weight所以这个方法无法使用
        print("My weight is exactly", self.__weight)
        
    def get_trueweight(self): # 覆盖了Cat父类中定义的方法
        print("My weight is exactly", self._weight+1)

创建实例

# 测试私人变量的外部访问
cole = Cat(5)
cole.weight
# 7
cole._weight
# 6
cole.get_trueweight() # 在类中引用__weight,用这个方法返回
# Actually the cat's weight is 5
cole._Cat__weight # 非要访问也可以,其实是python解释器把__weight改成了_Cat__weight
# 5
 
# 测试私人变量的子类调用
cain = Blackcat(5)
cain.get_weight()
# My weight is 7
cain.get_weight_again()
# Actuall my weight is 6
# cain.get_true_weight() # 报错
 
# 测试方法的继承与覆盖
cain.get_myweight() #
# My weight is 6 kg
cain.get_trueweight() # 子类中同名函数覆盖父类
# My weight is exactly 7

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...