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

本文共 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

你可能感兴趣的文章
《深入理解JavaScript》——2.6 JavaScript是广泛使用的吗
查看>>
Velocity官方指南-应用程序的属性
查看>>
《流量的秘密: Google Analytics网站分析与优化技巧(第3版)》一1.7 网站分析在企业中的位置...
查看>>
Xmemcached 1.2.2发布——支持遍历所有key
查看>>
API网关,让Serverless服务开放更加迅速
查看>>
如何使用OSS事件通知功能?
查看>>
Linux Shell十一 脚本安装Discuz
查看>>
贝叶斯算法
查看>>
Spark Streaming 1.6 流式状态管理分析
查看>>
ANTLR快餐教程(2) - ANTLR其实很简单
查看>>
Windows 7 中放大镜的使用方法和快捷键
查看>>
Git基础01
查看>>
dhtmlxCombo ztree
查看>>
C# WCF DataContractSerializer 类
查看>>
数据库数据迁移失败,如何进行修复操作
查看>>
二叉树递归分形,牛顿分形图案
查看>>
impdp在同一个数据库中将一个用户下的对象复制到另一个用户下
查看>>
win7入网测试
查看>>
UILTView经典知识点练习
查看>>
Laravel5设计json api时候的一些道道
查看>>