I'm trying to print 2 attributes of an object of a class called Computer. The class Computer inherited the classes Processor, RAM and HD, like in the code provided. In the main code, the first print works, but the second doesn't. When I run the code, it gives me the following error:
Traceback (most recent call last):
File "/home/ezau/PycharmProjects/Guppe/teste2.py", line 58, in module
print(pc1.get_hd_size())
File "/home/ezau/PycharmProjects/Guppe/teste2.py", line 49, in get_hd_size
return self.__hd_size
AttributeError: 'Computer' object has no attribute '_HD__hd_size'
How can the class Computer inherit the attributes and methods in the super classes? The code is provided below:
class Processor:
def __init__(self):
self.__brand = 'AMD'
self.__model = 'Ryzen 5 3400g'
def get_processor_model(self):
return self.__model
class RAM:
def __init__(self):
self.__amount = '1 Tb'
self.__ram_brand = 'HyperX'
class HD:
def __init__(self):
self.__hd_size = '1 TB'
self.__hd_brand = 'Western Digital'
def get_hd_size(self):
return self.__hd_size
class Computer(Processor, RAM, HD):
def __init__(self):
super().__init__()
pc1 = Computer()
print(pc1.get_processor_model())
print(pc1.get_hd_size())
source https://stackoverflow.com/questions/70146581/cant-print-attributes-from-inherited-classes
Comments
Post a Comment