fbpx

Проверка корректности ввода через стандартный декоратор сеттер

249 просмотра
0
0 Комментариев

Есть какой-то класс в котором необходимо реализовать проверку введенных пользователем данных c использованием декораторов:

class SomeKlass(object):
    __someProp = 0
 
    def __init__(self,param):
        self.someProp = param
 
    @property
    def someProp(self):
        return self.__someProp
 
    @someProp.setter
    def someProp(self, value):
        if value > 10:
            print("Some error")
            exit()
        else:
            self.__someProp = value

Метод init будет создан раньше сеттера т.е. сеттер не выполнится, а будет созданно новое свойство.
Этот пример необходим в образовательных целях
Вопрос: существует-ли способ реализовать проверку методом init без дублирования кода и через сеттер.


Добавить комментарий

1 Ответы

Python Опубликовано 19.01.2019
0

class MyClass:
    def __init__(self, value):
        self.value = value
 
    def getVal(self):
        print('get')
 
    def setVal(self, val):
        print("here is my value: {0}".format(val))
 
    value = property(getVal, setVal)
 
a = MyClass(14)

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up