I was doing the following exercise: 

> Create an algorithm which asks the user a number from 1 to 7, and each number represents a day on the week. For example, 1 represents Sunday, 2 represents Monday and so on. The user will type this number and the program will show them the name of the day on the week and if it's a business day or a weekend.

I tried to do it in a object-oriented way and using Python. Can someone please verify if my code is within the Python and object-oriented "standards"? Because I'm not sure whether it is, and I need a review.

Here's my code: 

    class DayOnWeek:
        ERROR_MESSAGE = 'Invalid weekday. Try again:'
        NUMBER_NAME_ASSOCIATIONS = {
            1: 'Sunday',
            2: 'Monday',
            3: 'Tuesday',
            4: 'Wednesday',
            5: 'Thursday',
            6: 'Friday',
            7: 'Saturday'
        }
    
        def __init__(self):
            self._day_number = 0
            self._day_name = None
            self._category = None
    
        @property
        def day_name(self):
            return self._day_name
    
        @property
        def category(self):
            return self._category
    
        @property
        def day_number(self):
            return self._day_number
    
        @day_number.setter
        def day_number(self, value):
            if 1 <= value <= 7:
                self._day_number = value
                self._day_name = DayOnWeek.NUMBER_NAME_ASSOCIATIONS[self._day_number]
            else:
                raise ValueError(DayOnWeek.ERROR_MESSAGE)
    
            if 2 <= value <= 6:
                self._category = 'Business day'
            else:
                self._category = 'Weekend'
    
    
    class DayOnWeekInterface:
    
        def __init__(self):
            self._day_on_week = DayOnWeek()
    
        def request_day_number(self):
            while True:
                try:
                    day_num = input('Type the number of the day on the week (ex: 1 - Sunday):')
                    day_num = int(day_num)
                    self._day_on_week.day_number = day_num
                    break
                except ValueError:
                    print(DayOnWeek.ERROR_MESSAGE)
            self.show_day_on_week()
    
        def show_day_on_week(self):
            day_num = self._day_on_week.day_number
            day_name = self._day_on_week.day_name
            day_category = self._day_on_week.category
            print(f'The day {day_num} is {day_name.lower()}')
            print(f'{day_name} is a {day_category.lower()}')
    
    
    DayOnWeekInterface().request_day_number()