0
点赞
收藏
分享

微信扫一扫

python 类中的私有变量


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

       

#coding=utf-8
'''
Created on 2016-3-18

@author: Administrator
'''

class PersonDemo():
def __init__(self):
self.__name=''
self.__age = 0
pd = 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 = value
pd = 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 = 30
p.name = 'kwsy'
print p.name
print p.age


property是一个装饰器,有了它,我们就可以像C#里的语法糖那样方便的对对象的私有属性进行访问

举报

相关推荐

0 条评论