@property 可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/getter也是需要的
假设定义了一个类Cls,该类必须继承自object类,有一私有变量__x
1. 第一种使用属性的方法:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# blog.ithomer.net
class Cls(object):
def __init__(self):
self.__x = None
def getx(self):
return self.__x
def setx(self, value):
self.__x = value
def delx(self):
del self.__x
x = property(getx, setx, delx, 'set x property')
if __name__ == '__main__':
c = Cls()
c.x = 100
y = c.x
print("set & get y: %d" % y)
del c.x
print("del c.x & y: %d" % y)
运行结果:
set & get y: 100
del c.x & y: 100
在该类中定义三个函数,分别用作赋值、取值、删除变量
property函数原型为property(fget=None,fset=None,fdel=None,doc=None),上例根据自己定义相应的函数赋值即可。
2. 第二种方法(在2.6中新增)
同方法一,首先定义一个类Cls,该类必须继承自object类,有一私有变量__x
class Cls(object):
def __init__(self):
self.__x = None
@property
def x(self):
return self.__x
@x.setter
def x(self, value):
self.__x = value
@x.deleter
def x(self):
del self.__x
if __name__ == '__main__':
c = Cls()
c.x = 100
y = c.x
print("set & get y: %d" % y)
del c.x
print("del c.x & y: %d" % y)
运行结果:
set & get y: 100
del c.x & y: 100
说明: 同一属性__x的三个函数名要相同。
参考推荐:
python Property属性用法
python学习笔记 - @property
分享到:
相关推荐
Python深度学习实战——基于Pytorch全书电子教案完整版ppt整套教学课件最全教学教程.pptx
文章目录引言@property设置可读写属性设置只读属性 引言 首先我们定义一个Person类,这里多说一点在Python3.x中Person()与Person(object)是一样的,默认帮你加载了Object类 class Person(): def get_height(self)...
本文包括:模块基础,导入模块,重载模块和模块中的常见问题。笔者通过实例来学习Python,对初学者是不错的选择。
[实训解析]Python 计算思维训练——SAR图像处理-第2关:读入一个目录下所有图像_5307.pdf
用Python学习线性代数——向量在Jupyter Notebook下运行的文件,内容包括行列向量的基本表示,向量的基本运算等。详情请见https://tuenity.blog.csdn.net/article/details/104070768。
Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...
零基础小白Python入门必看——编程基础概念.docx
python项目——BBS问答社区.zip python项目——BBS问答社区.zip python项目——BBS问答社区.zip python项目——BBS问答社区.zip python项目——BBS问答社区.zip python项目——BBS问答社区.zip python项目——BBS...
python计算机视觉学习————图像内容分类 计算机视觉.pdf
Python数据分析入门——数据清理案例资源文件,二手房数据
python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf python 学习笔记——线性回归预测模型.pdf ...
Python入门教程——数字篇(一).docxPython入门教程——数字篇(一).docxPython入门教程——数字篇(一).docxPython入门教程——数字篇(一).docxPython入门教程——数字篇(一).docxPython入门教程——数字篇(一)....
Python深度学习实战——基于Pytorch-ppt.zip
Python高效开发实战——Django、Tornado、Flask、Twisted 本书源代码 Python高效开发 实战 也许你听说过全栈工程师,他们善于设计系统架构,精通数据库建模、通用网络协议、后端并发处理、前端界面设计,在学术研究...
python线性回归实验——【机器学习与算法分析】.docx
外部python调用houdini python(csdn)————程序
指向计算思维发展的初中信息技术Python语言教学设计——以“多分支结构条件语句”一课为例.pdf
python小游戏大全——30个,python小游戏大全——30个,快来下载吧!
Python第一课——编程环境搭建教案.pdfPython第一课——编程环境搭建教案.pdfPython第一课——编程环境搭建教案.pdfPython第一课——编程环境搭建教案.pdfPython第一课——编程环境搭建教案.pdfPython第一课——编程...