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之复习if语句
Oct 02 Python
自己使用总结Python程序代码片段
Jun 02 Python
Python中的条件判断语句与循环语句用法小结
Mar 21 Python
浅谈Python基础之I/O模型
May 11 Python
Python实现句子翻译功能
Nov 14 Python
分析Python读取文件时的路径问题
Feb 11 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
python实现按关键字筛选日志文件
Dec 24 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
手把手教你配置JupyterLab 环境的实现
Feb 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
关于在php.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
php md5下16位和32位的实现代码
2008/04/09 PHP
PHP如何将XML转成数组
2016/04/04 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
封装好的省市地区联动控件附下载
2007/08/13 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
python九九乘法表的实例
2017/09/26 Python
简述Python2与Python3的不同点
2018/01/21 Python
Python实现的购物车功能示例
2018/02/11 Python
对python list 遍历删除的正确方法详解
2018/06/29 Python
python3.7调试的实例方法
2020/07/21 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
保密承诺书
2014/03/27 职场文书
教师专业自荐信
2014/05/31 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
2014年文艺部工作总结
2014/11/17 职场文书