Я хочу сделать свой код более сложным, и это проблема, с которой я сталкиваюсь
class Person:
def __init__(self, age):
self.age = age
def drives(self):
if self.age >= 18:
# Do more things which driving entitles
print("you can drive")
def studies(self):
if self.age <= 25:
# Do more student stuffs
print("Good luck with your education")
bob = Person(14)
bob.drives()
bob.studies()
jim = Person(35)
jim.drives()
jim.studies()
Мне не нравятся проверки, как только я ввожу метод, увеличивая разметку. Я знаю о декораторах, они лучше всего здесь? И как мне их использовать в этом случае? Я бы хотел, чтобы он выглядел так:
class Person:
def __init__(self, age):
self.age = age
@check_if_person_age_is_greater_than_17
def drives(self):
# Do more things which driving entitles
print("you can drive")
@check_if_person_age_is_less_than_26
def studies(self):
# Do more student stuffs
print("Good luck with your education")
bob = Person(14)
bob.drives() # either this method cannot be accessed or returns nothing, since bob is 14
bob.studies() # this should work normally
jim = Person(35)
jim.drives() # this should work normally
jim.studies() # either this method cannot be accessed or returns nothing, since jim is 35
Прошу прощения, если мой вопрос не является кратким или не заслуживающим внимания.