python:小心类实例的属性动态绑定机制

157 阅读1分钟
原文链接: click.aliyun.com

python:小心类实例的属性动态绑定机制

avatus 2018-09-03 16:37:56 浏览19 评论0
  • python
  • class
  • test
  • 编程基础
  • 类属性的动态绑定

摘要: 一个坑,python可以为类的实例动态的绑定属性,不要以为你真的跳过了setter和getter

class Test:
    def __init__(self):
        self.__key='init'

    def get_key(self):
        return self.__key

    def set_key(self,key):
        self.__key=key


if __name__ == '__main__':
    obj = Test()
    print(obj.get_key())#输出初始值init
    obj.set_key('通过set方法设置的值')
    print(obj.get_key())#输出set方法修改之后的值
    obj.__key = 'Should not use in this way'#动态绑定上去的属性
    print(obj.get_key())#类的实例私有属性的值
    print(obj.__key)
    #注意这个地方↑其实输出的是动态绑定到实例obj上面的属性,不是类里面的私有属性!

 

用云栖社区APP,舒服~

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击
分享到:

相关文章

网友评论