欢迎访问郭晓龙个人博客
你的位置:首页  > Python  > 隐藏数据和保护对象属性

隐藏数据和保护对象属性

修改属性的方法

方法一:直接通过对象名修改 BMW.color='red'

方法二: 通过方法间接修改 BMW.setColor('red')

明明可以使用第1种方法直接修改,为什么还要定义方法来间接修改呢?

至少有2个原因:

  • 如果直接修改属性,可能存在一些关联业务也要处理。而使用方法来修改时,只需要调用一次即可完成
  • 如果直接访问属性,color = 'good'。非颜色值,通过使用方法来进行修改,就可以在方法中进行数据合法性的检查

保护对象的属性

为了更好的保存属性安全,即不能随意修改,一般的处理方式为

  • 将属性定义为私有属性
  • 添加一个可以调用的方法,供调用
class People(object):

    def __init__(self, name):
        self.__name = name

    def getName(self):
        return self.__name

    def setName(self, newName):
        if len(newName) >= 5:
            self.__name = newName
        else:
            print("error:名字长度需要大于或者等于5")

gxl = People("gxl")
print(gxl.__name)

总结

  • Python中没有像Java中public和private这些关键字来区别公有属性和私有属性
  • 它是以属性命名方式来区分,如果在属性名前面加了2个下划线'__',则表明该属性是私有属性,否则为公有属性 (方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。
文章标题: 隐藏数据和保护对象属性
文章地址: http://www.guoxiaolong.cn/article-2-56
文章标签: python入门教程
Top