在不覆盖的情况下创建依赖于另一个属性的 class 属性
Creating a class attribute dependent on another attribute without overwriting
我有 class Vehicle
有两个属性:pRange
和 pBattery
车辆的 pRange
为 220、310、400 或 505 的机会均等。我希望 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)
我有 class Vehicle
有两个属性:pRange
和 pBattery
车辆的 pRange
为 220、310、400 或 505 的机会均等。我希望 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)