私有变量、保护变量


01.python中使用”__变量名称”的格式指定私有变量。

  • 私有变量不能通过实例对象直接访问修改,但可设置实例方法获取私有变量。
  • 私有变量示例:
class StudentInfo(object):

    def __init__(self, name="wenjun", age="35"):
        self.__name = name
        self.__age = age

    def get_age(self):
        return self.__age

    def set_age(self, age):
        if age < 1 or age > 150:
            print("wrong age")
            return None
        self.__age = age

result = StudentInfo()
result.set_age(200)
print(result.get_age())
  • 私有变量的原理是在实例对象的__dict__中,将实例对象的名称之前加了一个”_类名”,因此通过__dict__获取不到该变量。
  • 私有变量实际是以改变属性名称的方式保护实例的属性不受约束的被修改。


02.python中使用”_变量名称”的格式指定保护变量。

  • 保护变量是python开发者共同的约定,约定保护变量不能随意修改;保护变量没有逻辑上的限制。


03.python中使用”__方法名称”的格式指定私有方法。

  • 私有方法不能通过实例对象直接调用,但可设置实例方法调用私有方法。
  • 私有方法的示例如下:
class StudentInfo(object):

    def __init__(self, name="wenjun", age="35"):
        self.__name = name
        self.__age = age

    def get_age(self):
        return self.__age

    def __set_age(self, age):
        self.__age = age

    def set_age(self, age):
        if  age < 1 or age > 150:
            print("wrong age")
            return None
        self.__set_age(age)

result = StudentInfo()
result.set_age(100)
print(result.get_age())
  • 私有方法的原理是在类的__dict__中,在方法的名称之前加了一个”_类名”,因此通过__dict__获取不到该变量:
文档更新时间: 2021-02-01 22:56   作者:闻骏