Как сделать проверку переменной по классу?
Код:
speed = 0
class Novice():
def __init__(self, first_speed, last_speed):
self.first_speed = first_speed
self.last_speed = last_speed
novice = Novice(0, 99)
if speed == novice:
print('You are Novice!')
else:
pass
Значит, мне нужно, чтоб когда переменная speed равнялась от 0 до 99 писалось в консоль: You are Novice!. А если меньше то ничего, т.е. pass. Как это сделать?
Ответы (3 шт):
Автор решения: S. Nick
→ Ссылка
попробуйте так:
speed = 0
class Novice():
def __init__(self, first_speed, last_speed):
self.first_speed = first_speed
self.last_speed = last_speed
novice = Novice(0, 99)
if speed >= novice.first_speed and speed < novice.last_speed:
print('You are Novice!')
else:
pass
Автор решения: mrEvgenX
→ Ссылка
Как вариант (скорее антипример), вроде работает:
speed = 0
class Novice():
def __init__(self, first_speed, last_speed):
self.first_speed = first_speed
self.last_speed = last_speed
def __eq__(self, obj):
return self.first_speed <= obj <= self.last_speed
novice = Novice(0, 99)
if speed == novice:
print('You are Novice!')
else:
pass
Но чисто субъективно, я бы убедительно не советовал использовать это в чем-то серьезном. Когда проект разрастется - вы замучаетесь отлаживать возможные возникающие ошибки.
Соседний ответ от @S. Nick получше будет в этом смысле.
Автор решения: Andy Pavlov
→ Ссылка
Учитывая, что у нас класс со скоростями, логично сделать метод оценки скорости:
class Novice:
def __init__(self, first_speed, last_speed):
self.first_speed = first_speed
self.last_speed = last_speed
def check_speed(self, speed):
return self.first_speed <= speed <= self.last_speed
speed = 0
novice = Novice(0, 99)
if novice.check_speed(speed):
print('You are Novice!')
Либо принт сразу в check_speed() перенести.