Создание атрибута класса, зависящего от другого атрибута, без перезаписи - PullRequest
0 голосов
/ 01 августа 2020

У меня есть класс 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)

, который на самом деле дает правильный результат, но я Уверен, что есть более эффективный способ сделать это.

1 Ответ

0 голосов
/ 01 августа 2020
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...