Доступ к частным переменным

Такой доступ к частным переменным (без их изменения!) - насколько безопасен и приемлим?

class MyClass:
    def __init__(self):
        self.__private_var = 66


class_instance = MyClass()
print(class_instance._MyClass__private_var)

Ответы (1 шт):

Автор решения: S. Nick

Private переменные: доступны только внутри класса с префиксом двойного подчеркивания (__).

Тем не менее, можно получить к нему доступ, используя версию с искаженным именем,

print(class_instance._MyClass__private_var)

хотя это не рекомендуется.

Делайте так:

class MyClass:
    def __init__(self, var):
        self.__private_var = var

    def display_private_var(self):
        print(f"__private_var: {self.__private_var}")  # Доступно внутри класса


class_instance = MyClass(66)
class_instance.display_private_var() 
→ Ссылка