python 类中的私有变量
发布日期:2021-06-21 03:03:50 浏览次数:22 分类:技术文章

本文共 1293 字,大约阅读时间需要 4 分钟。

如何在类中定义一个私有变量呢,我们不希望类里的变量随意被外界访问,python中没有private,只需要在变量前面加上两个下划线就可以了

       

#coding=utf-8'''Created on 2016-3-18@author: Administrator'''class PersonDemo():    def __init__(self):        self.__name=''        self.__age = 0pd = PersonDemo()print pd.__age      #这条语句会出错
加上两个下划线后,属性或方法就变成了私有的,外界无法访问,但是我们还需要对其进行赋值啊,或是获得其值,那么可以加上get,set函数

#coding=utf-8'''Created on 2016-3-18@author: Administrator'''class PersonDemo():    def __init__(self):        self.__name=''        self.__age = 0    def get_name(self):        return self.__name    def set_name(self,value):        self.__name = valuepd = PersonDemo()pd.set_name('kwsy')print pd.get_name()
虽然加上get,set函数后,可以设置和访问私有属性,但使用起来不是很方便,能否像c#里的语法糖那样方便的对私有属性进行访问呢?当然可以,借助property即可

#coding=utf-8'''Created on 2016-3-18@author: Administrator'''class Person():    name = property()    age = property()    def __init__(self):        self.__name = ''        self.__age = ''    @name.getter    def name(self):        return self.__name        @name.setter    def name(self,value):        self.__name = value            @age.getter    def age(self):        return self.__age        @age.setter    def age(self,value):        self.__age = value        p = Person()p.age = 30p.name = 'kwsy'print p.nameprint p.age
property是一个装饰器,有了它,我们就可以像C#里的语法糖那样方便的对对象的私有属性进行访问

转载地址:https://blog.csdn.net/KWSY2008/article/details/50920278 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python 小点心 --datetime(日期)
下一篇:python kill进程

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年12月23日 17时53分53秒