博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python私有属性set 和get方法
阅读量:6700 次
发布时间:2019-06-25

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

class Person(object):

#self不是关键字,换成其他的标识符也是可以的,但是一般不要改
def run(self):
print("run")
def eat(self,food):
print("eat" + food)
def say(self):
print("hello! my name is %s,i am %d years old" %(self.name,self.age))
def __init__(self,name,age,height,weight,money):#构造函数;
#定义属性
self.name = name
self.__age__ = age
self._height = height
self.weight = weight
self.__money = money#不被外部直接访问;相当于_Person__money
#通过内部的方法,去修改私有属性
#通过自定义的方法实现对私有属性的赋值与取值
def setMoney(self,money):#对私有属性的赋值
#数据过滤
if money < 0:
monry = 0
self.__money = money
def getMoney(self):#对私有属性的取值
return self.__money
per = Person("hanmeimei",20,170,68,1000)
per.setMoney(10)
print(per.getMoney())
'''
如果要让内部的属性,不被外部直接访问,在属性前加两个下划线__,
在Python中如果在属性前加两个下划线,那么这个属性就变成私有属性
'''
'''
不能直接访问per.__money是因为python解释器把__money变成
per.__money变成了_Person_money去访问,但是强烈建议不要这么干
注意:不同的解释器可能存在解释的变量不一致。
可以这么访问对象名._类名__私有属性 = 新值
per.__money
'''
#注意:在Python中__xx__这样的属性不是私有属性,这叫特殊变量;特殊变量的值可以直接访问
print(per.__age__)
#在Python中 _xx变量,这样的实例变量外部也是可以访问的,
#但是按照约定的规则,当我们看到这样的变量时,意思是“虽然我可以
#被访问,但是请把我视为私有变量,不要直接访问我"
print(per._height)

转载于:https://www.cnblogs.com/guojie-guojie/p/9268473.html

你可能感兴趣的文章
了解 Windows Azure 存储的可伸缩性、可用性、持久性和计费
查看>>
.js——alert()语句
查看>>
驱动开发之 设备读写方式:缓冲区方式
查看>>
ICC Scenario Definition
查看>>
char.js专门用来做数据统计图
查看>>
第二个Spring冲刺周期团队进展报告
查看>>
Java动态代理和cglib动态代理
查看>>
POJ3274Gold Balanced Lineup(哈希)
查看>>
hdu - 3415 Max Sum of Max-K-sub-sequence
查看>>
JadClipse eclipse反编译插件
查看>>
struts2中文件上传
查看>>
男性早孕-从软件与程序的区别说起
查看>>
Windows 恢复环境(Windows RE模式)
查看>>
2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) - 4.28
查看>>
SAP OBYC自动记账的实例说明 +VALUE STRING
查看>>
node.js 实现扫码二维码登录
查看>>
liunx常用命令笔记
查看>>
基础总结
查看>>
oracle-25031安装错误分析解决
查看>>
统一沟通-技巧-5-Lync 2010 for iPhone iPad–配置-手册
查看>>