Python 继承的类的输出

Python 继承的类的输出,python,inheritance,subclass,Python,Inheritance,Subclass,我在一次测验中遇到了这个问题,不明白为什么要将“BMW”打印为输出。两个类中的公司名称都是私有的,所以为什么一个可以访问,另一个不能访问。有人能解释一下总体输出背后的逻辑吗 class Bike: def __init__(self): self.__Company_name = "BMW" self.price = 2000 def details(self): print('Nam

我在一次测验中遇到了这个问题,不明白为什么要将“BMW”打印为输出。两个类中的公司名称都是私有的,所以为什么一个可以访问,另一个不能访问。有人能解释一下总体输出背后的逻辑吗

class Bike:
    
    def __init__(self):
        self.__Company_name = "BMW"
        self.price = 2000
        
    def details(self):
        print('Name: ',self.__Company_name,'   Price: ',self.price)


class Car(Bike):
    
    def __init__(self):
        super().__init__()
        self.__Company_name = "Audi"
        self.price = 4000
            
            
obj = Car()
obj.details()
输出:

名称:宝马价格:4000

因为您使用的是双下划线名称mangling,所以在
Bike.details
中使用的是
self_自行车公司名称
。。。这就是双下划线名称混乱的要点,为了防止子脚本中的名称冲突,因为您使用的是双下划线名称混乱,所以在
Bike.details
中使用
self_自行车公司名称
。。。这就是双下划线名称混乱的全部要点,以防止子LSS中的名称冲突