Приватность свойств. Name Mangling (_name и __name)

Для установления приватности для класса добавляют __ в начале имени свойства (переменной, функции)

from datetime import datetime


class Person:
    def __init__(self, name, surname, birthday):
        self._name = name
        self._surname = surname
        self.__birthday = birthday 
        self.name = f"{self._name} {self._surname}"

    @staticmethod
    def _get_current_time():
        return datetime.now()

    def _show_birthday(self):
        return self.__birthday

    def print_data(self):
        print(f"Now {self._get_current_time()}: {self.name} Birthday: {self._show_birthday()}")


people1 = Person("Dmitry", "Budaev", "14.04.1989")
12345678910111213141516171819202122

Last updated

Was this helpful?