簡體   English   中英

創建依賴於另一個屬性而不覆蓋的 class 屬性

[英]Creating a class attribute dependent on another attribute without overwriting

我有具有兩個屬性的 class VehiclepRangepBattery

車輛具有pRange或 505 的 pRange 的機會均等。我希望pBattery屬性的值取決於pRange值。

這是我的代碼:

class Vehicle:
    def __init__(self, pRange, pBattery):
        self.pRange = np.random.choice(list(pRange), p = list(pRange.values()))
        self.pBattery = pBattery
    

pRange = { 220 : 0.25, 310 : 0.25, 400 : 0.25, 505 : 0.25 } 

b = Vehicle(pRange, pBattery)

if b.pRange == 220:
    b.pBattery == 36
elif b.pRange == 310:
    b.pBattery == 47.5
elif b.pRange == 400:
    b.pBattery = 64
elif b.pRange == 505:
    b.pBattery = 95

print(b.pRange)
print(b.pBattery)

這實際上給出了正確的結果,但我確信有一種更有效的方法可以做到這一點。

class Vehicle:
    def __init__(self, pRange):
        self.pBattteryDict = {220:36, 310:47.5, 400:64, 505:95}
        self.pRange = np.random.choice(list(pRange), p = list(pRange.values()))
        self.pBattery = self.pBattteryDict[self.pRange] 

pRange = { 220 : 0.25, 310 : 0.25, 400 : 0.25, 505 : 0.25 } 
b = Vehicle(pRange)

print(b.pRange)
print(b.pBattery)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM