Python内置函数property()如何使用


Posted in Python onSeptember 01, 2020

代码

class Shuxing():
  def __init__(self, size = 10):
    self.size = size
  def getSize(self):
    print('getSize')
    return self.size
  def setSize(self, value):
    print('setSize')
    self.size = value
  def delSize(self):
    print('delSize')
    del self.size
  x = property(getSize, setSize, delSize)

sx=Shuxing(100)
print('1',sx.x)  #获取x,执行getSize方法
sx.x=1000   #设置x,执行setSize方法
print('2',sx.x)   #获取x,执行getSize方法
del sx.x  # 删除x,执行delSize方法

print('3',sx.size)   # 获取x,执行getSize方法,但是此时size已被删除,所以会报错 

结果

getSize
1 100
Traceback (most recent call last):
setSize
getSize
File "D:/PycharmProjects/flask_demo/a.py", line 21, in <module>
2 1000
delSize
print('3',sx.size)
AttributeError: 'Shuxing' object has no attribute 'size'

Process finished with exit code 1

property()函数中的三个函数分别对应的是获取属性的方法、设置属性的方法以及删除属性的方法,这样一来,外部的对象就可以通过访问x的方式,来达到获取、设置或删除属性的目的。

当需要更改上例中的getSize、setSize或delSize函数的名称时,如果这些方法是作为接口让用户调用的,那么对用户而言就要修改自己调用的方法名,很麻烦,使用了proprty()后,用户就不需担心这种问题了。

更多关于属性的内置方法有:

  • hasattr():判断对象中是否有指定名称的属性,第一个参数是对象,第二个参数是字符串(属性名称);
  • getattr():获取对象中指定的属性的值,如果属性不存在,返回指定的提示字符串,第一个参数是对象,第二参数是字符串(属性名称),第三个参数是字符串(访问的属性不存在时的提示);
  • setattr():设置对象中指定的属性的值,如果属性不存在,就自动为对象添加该属性并赋值,第一个参数是对象,第二个参数字符串(属性名称),第三个参数是需要设置的属性对应的值;
  • delattr():删除对象中指定的属性,第一个参数是对象,第二个参数需要删除的指定属性的名称。

以上就是Python内置函数property()如何使用的详细内容,更多关于Python内置函数property()的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python解析文件示例
Jan 23 Python
使用python在校内发人人网状态(人人网看状态)
Feb 19 Python
进一步探究Python中的正则表达式
Apr 28 Python
浅谈python字典多键值及重复键值的使用
Nov 04 Python
Python2随机数列生成器简单实例
Sep 04 Python
用不到50行的Python代码构建最小的区块链
Nov 16 Python
python实现连续图文识别
Dec 18 Python
python中列表的切片与修改知识点总结
Jul 23 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
Python生命游戏实现原理及过程解析(附源代码)
Aug 01 Python
余弦相似性计算及python代码实现过程解析
Sep 18 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 #Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 #Python
解决python便携版无法直接运行py文件的问题
Sep 01 #Python
django有哪些好处和优点
Sep 01 #Python
python实现简单的五子棋游戏
Sep 01 #Python
Pycharm连接gitlab实现过程图解
Sep 01 #Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 #Python
You might like
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
浅谈php提交form表单
2015/07/01 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
javascript下数值型比较难点说明
2010/06/07 Javascript
基于JQuery的日期联动实现代码
2011/02/24 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
js回调函数仿360开机
2019/12/26 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
为Python的web框架编写MVC配置来使其运行的教程
2015/04/30 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
安全大检查反思材料
2014/01/31 职场文书
创先争优一句话承诺
2014/05/29 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
员工旷工检讨书
2015/08/15 职场文书
商业计划书格式、范文
2019/03/21 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书