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,因為它繼承了電子設備類的值。
但是,如果我嘗試執行以下操作,則會收到錯誤訊息“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 作為輸出。有人可以幫忙嗎?
uj5u.com熱心網友回復:
您可以嘗試以下解決方案:
解決方案 1:variables通過class
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.
方案2:訪問variables通過instance的class
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/352978.html
上一篇:物件關閉時,手風琴類無法使用javascript正確洗掉
下一篇:創建一個新物件并同時呼叫該方法
