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.ageproperty是一个装饰器,有了它,我们就可以像C#里的语法糖那样方便的对对象的私有属性进行访问
转载地址:https://blog.csdn.net/KWSY2008/article/details/50920278 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年12月23日 17时53分53秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
memcache数据库和redis数据库的区别(理论)
2019-06-23
我的友情链接
2019-06-23
MyBatis+Spring结合
2019-06-23
Office 365之SkyDrive Pro
2019-06-23
脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?
2019-06-23
无缝滚动实现原理分析【公告栏】
2019-06-23
Java Web 高性能开发
2019-06-23
CentOS 4.4双网卡绑定,实现负载均衡
2019-06-23
Scala之柯里化和隐式转换
2019-06-23
获取androdmanifest里面的meta-data
2019-06-23
mysql拷贝表的几种方式
2019-06-23
用设计模式去掉没必要的状态变量 —— 状态模式
2019-06-23
linux安装elasticsearch及遇到的各种问题
2019-06-23
健忘的正则
2019-06-23
[转]CMake快速入门教程:实战
2019-06-23
IntelliJ IDEA创建JavaWeb工程及配置Tomcat部署
2019-06-23
Markdown用法
2019-06-23
求最大值及其下标
2019-06-23
Request header is too large
2019-06-23
轮播插件swiper.js?
2019-06-23