property用法,使Python中的get方法和set方法使用更简单
方法一:
class a:
def __init__(self):
self.__num = 1 #定义一个私有变量(以双下划线开头的是私有变量)
def getNum(self): #定义get方法
return self.__num
def setNum(self,num_temp): #定义set方法
if num_temp ==1 or num_temp == 0:
self.__num = num_temp
num = property(getNum,setNum)
#重点:定义完get和set方法,在下方加一条这样的指令,给__num赋值的时候就可以直接下面这样:
test = a() #创建一个a的对象
test.num = 100 #执行这句的时候,Python会自动调用setNum方法给__num赋值,
print(test.num) #同理,这句会自动调用get方法取__num的值
方法二:
class a:
def __init__(self):
self.__num = 1 #定义一个私有变量(以双下划线开头的是私有变量)
@property #这个地方原本是get方法,要注意:方法上面加一个
def num(self): @property,方法名改成你想要的名字,比如num
if self.__num ==0 or self.__num == 1:
return self.__num
@num.setter #这里set方法上方要这样写,num是get的方法名
def num(self,num_temp): #set的方法名和get一样
if num_temp ==1 or num_temp == 0:
self.__num = num_temp
此时就可以像方法一一样使用了:
test = a() #创建一个a的对象
test.num = 100 #执行这句的时候,Python会自动调用setNum方法给__num赋值,
print(test.num) #同理,这句会自动调用get方法取__num的值
最新文章
- 【腾讯Bugly干货分享】动态链接库加载原理及HotFix方案介绍
- Gradle 下载
- OpenCASCADE Hidden Line Removal
- UOJ261 【NOIP2016】天天爱跑步
- clone github的代码
- hasOwnProperty与isPrototypeOf
- FileListEntityProcessor
- runnable与handler结合使用,其实跟在Thread中的run()中sleep的效果是一样的
- Java IO 理解流的概念
- 使用dropwizard(5)--加入swagger
- 【Vuex】vuex基本介绍与使用
- day09 详解内存管理机制
- 西风 West Wind Html帮助构建器
- 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借助TopSelf、服务类】)
- Flink应用开发-maven导入
- Tomcat的目录结构详细介绍(超全)
- demo:复制粘贴功能
- Eclipse自动部署项目到Tomcat的webapps下的有效方法
- 基于nginx实现protobuf RPC
- Java实现-每天三道剑指Offre(2-4)