在操纵变量值的情况下如何使用多重继承
How can I use multiple inheritance in case of manipulating variable value
class Electronicdevice():
Devices = 100
class Pocketgadgets(Electronicdevice):
Pocketdevices = 40
class Phone(Pocketgadgets):
#Phones = Devices - Pocketdevices
pass
Samsung = Electronicdevice()
Galaxy = Pocketgadgets()
SamsungGalaxyS21 = Phone()
print(SamsungGalaxyS21.Devices)
在这种情况下,我得到的预期输出为 100,因为它继承了电子设备 class 的值。
但以防万一,我尝试执行以下操作,但出现错误“NameError: name 'Devices' is not defined”
class Electronicdevice():
Devices = 100
class Pocketgadgets(Electronicdevice):
Pocketdevices = 40
class Phone(Pocketgadgets):
Phones = Devices - Pocketdevices
pass
Samsung = Electronicdevice()
Galaxy = Pocketgadgets()
SamsungGalaxyS21 = Phone()
print(SamsungGalaxyS21.Phones)
希望获得值 60,因为 output.Can 有人可以帮忙吗?
您可以尝试这些解决方案:
解决方案 1:
通过 class
访问 variables
class Electronicdevice:
Devices = 100
class Pocketgadgets(Electronicdevice):
Pocketdevices = 40
class Phone(Pocketgadgets):
Phones = Electronicdevice.Devices - Pocketgadgets.Pocketdevices
Samsung = Electronicdevice()
Galaxy = Pocketgadgets()
SamsungGalaxyS21 = Phone()
print(SamsungGalaxyS21.Phones)
60
NB: this example is independent of the inheritance, that is, even if you don't inherit from **Pocketgadgets** class, it will still work.
方案二:
通过 class
的 instance
访问 variables
class Electronicdevice:
Devices = 100
class Pocketgadgets(Electronicdevice):
Pocketdevices = 40
class Phone(Pocketgadgets):
def __init__(self):
self.Phones = self.Devices - self.Pocketdevices
Samsung = Electronicdevice()
Galaxy = Pocketgadgets()
SamsungGalaxyS21 = Phone()
print(SamsungGalaxyS21.Phones)
60
class Electronicdevice():
Devices = 100
class Pocketgadgets(Electronicdevice):
Pocketdevices = 40
class Phone(Pocketgadgets):
#Phones = Devices - Pocketdevices
pass
Samsung = Electronicdevice()
Galaxy = Pocketgadgets()
SamsungGalaxyS21 = Phone()
print(SamsungGalaxyS21.Devices)
在这种情况下,我得到的预期输出为 100,因为它继承了电子设备 class 的值。
但以防万一,我尝试执行以下操作,但出现错误“NameError: name 'Devices' is not defined”
class Electronicdevice():
Devices = 100
class Pocketgadgets(Electronicdevice):
Pocketdevices = 40
class Phone(Pocketgadgets):
Phones = Devices - Pocketdevices
pass
Samsung = Electronicdevice()
Galaxy = Pocketgadgets()
SamsungGalaxyS21 = Phone()
print(SamsungGalaxyS21.Phones)
希望获得值 60,因为 output.Can 有人可以帮忙吗?
您可以尝试这些解决方案:
解决方案 1:
通过 class
variables
class Electronicdevice:
Devices = 100
class Pocketgadgets(Electronicdevice):
Pocketdevices = 40
class Phone(Pocketgadgets):
Phones = Electronicdevice.Devices - Pocketgadgets.Pocketdevices
Samsung = Electronicdevice()
Galaxy = Pocketgadgets()
SamsungGalaxyS21 = Phone()
print(SamsungGalaxyS21.Phones)
60
NB: this example is independent of the inheritance, that is, even if you don't inherit from **Pocketgadgets** class, it will still work.
方案二:
通过 class
instance
访问 variables
class Electronicdevice:
Devices = 100
class Pocketgadgets(Electronicdevice):
Pocketdevices = 40
class Phone(Pocketgadgets):
def __init__(self):
self.Phones = self.Devices - self.Pocketdevices
Samsung = Electronicdevice()
Galaxy = Pocketgadgets()
SamsungGalaxyS21 = Phone()
print(SamsungGalaxyS21.Phones)
60