百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

python内置函数property详解(python内置函数介绍)

off999 2024-09-21 20:49 33 浏览 0 评论

在Python中,property是一个内置函数(其实是一个class),用于将方法转换为对象的属性。这使得我们像访问普通属性一样访问这些方法。

property函数接收四个参数:

  1. fget:用于获取属性值的函数(getter方法)。
  2. fset:用于设置属性值的函数(setter方法)。
  3. fdel:用于删除属性的函数(deleter方法)。
  4. doc:属性的文档字符串。

举例:定义一个汽车类,函数carbrand返回汽车品牌属性,函数carbrand_setter修改汽车品牌属性,函数carbran_deletter删除汽车品牌。

class Car():
  persons = 5
  def __init__(self,brand,color,cost_performance):
    self.brand = brand
    self.color = color
    self.cost_performance = cost_performance

  def carbrand(self):
    return self.brand

  def carbrand_setter(self, brand):
    self.brand = brand
    print(f'设置实例属性品牌为{self.brand}')

  def carbrand_deleter(self):
    print('不能删除实例属性')
    raise False
  #property()函数赋值给newbrand
  newbrand = property(carbrand, carbrand_setter, carbrand_deleter,'汽车品牌')

最后通过proerty函数定义一个新的属性newbrand,传入上面的三个参数。

实例化后我们访问/修改/删除属性,看下结果如何?

Mercedes_Benz = Car('GLC260','black','不高')

获取属性

print(f'汽车品牌 :{Mercedes_Benz.newbrand}')
#结果
汽车品牌 :GLC260


修改属性

Mercedes_Benz.newbrand = 'bmwx3'
print(f'修改汽车品牌 :{Mercedes_Benz.newbrand}')
#结果
修改汽车品牌 :bmwx3


删除属性

del Mercedes_Benz.newbrand
#结果
不能删除实例属性

从结果中我们可以看出,当我们访问/修改/删除属性时,分别调用上面定义的三个函数,从而实现将类中的方法当作属性使用。

而日常使用过程中,函数property函数可以简化为@property装饰器,使用时会更简单,代码改为如下:

class Car():
  persons = 5
  def __init__(self,brand,color,cost_performance):
    self.brand = brand
    self.color = color
    self.cost_performance = cost_performance
  @property
  def carbrand(self):
    return self.brand
  @carbrand.setter
  def carbrand(self, brand):
    self.brand = brand
    print(f'设置实例属性品牌为{self.carbrand}')
  @carbrand.deleter
  def carbrand(self):
    print('不能删除实例属性')
    raise False

@carbrand.setter装饰器: 当对carbrand属性修改赋值时执行该函数

@carbrand.deleter装饰器:当对carbrand属性删除时执行该函数

Mercedes_Benz = Car('GLC260','black','不高')

#获取属性
print(f'汽车品牌 :{Mercedes_Benz.carbrand}')
#修改属性
Mercedes_Benz.carbrand = 'bmwx3'
print(f'修改汽车品牌 :{Mercedes_Benz.carbrand}')
#删除属性
del Mercedes_Benz.carbrand

以上代码执行后结果时一样的:

汽车品牌 :GLC260
设置实例属性品牌为bmwx3
修改汽车品牌 :bmwx3
不能删除实例属性
Traceback (most recent call last):
  File "/Users/htsc/Desktop/test 2.py", line 81, in <module>
    del Mercedes_Benz.carbrand
  File "/Users/htsc/Desktop/test 2.py", line 55, in carbrand
    raise False
TypeError: exceptions must derive from BaseException


共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

----感谢读者的阅读和学习和关注,谢谢大家。

相关推荐

windows无法识别usb(windows无法识别usb设备)
windows无法识别usb(windows无法识别usb设备)

Windows无法识别USB,解决办法如下右键开始菜单打开设备管理器,在通用串行总线控制器中右键点击设备选择“卸载”,完成后重新启动计算机即可解决问题。这有可能是在组策略中禁用了USB口,可以使用快捷键【Win+R】运行gpedit.msc...

2025-11-10 11:51 off999

bios能看到硬盘 开机找不到硬盘

bios里可以看到硬盘,说明硬盘已经被主板识别。进系统找不到,可能硬盘没分区,或者硬盘是动态磁盘,还没有导入或激活。按win+r,输入diskmgmt.msc回车,就打开磁盘管理了,在里面可以给新硬盘...

找回qq聊天记录的方法(找回qq聊天记录怎么找)
  • 找回qq聊天记录的方法(找回qq聊天记录怎么找)
  • 找回qq聊天记录的方法(找回qq聊天记录怎么找)
  • 找回qq聊天记录的方法(找回qq聊天记录怎么找)
  • 找回qq聊天记录的方法(找回qq聊天记录怎么找)
无线网有个红叉(无线网有个红叉,搜索不到网络)

连接失败,路由坏换路由,外网坏,报修无线网络处出现红叉表示设备无法正常工作。请检查网卡驱动是否正常,无线网络开关是否打开。解决方法:查看电脑是否有无线网络开关,且是否打开。进入设备管理器检查网卡驱动是...

thinkpad笔记本官网首页(thinkpad官方商城)

官方网站 国内:http://www.thinkworld.com.cn   国内用户只需要访问国内即可。  ThinkPad,中文名为“思考本”,在2005年以前是IBMPC事业部旗下的便携式计算机...

win7什么版本最好用(win7哪个版本最稳定流畅)

Windows7旗舰版,最好,最稳定。Windows7,是由微软公司(Microsoft)开发的操作系统,内核版本号为WindowsNT6.1。Windows7可供选择的版本有:简易版(Sta...

win7自带虚拟光驱怎么使用(win7系统虚拟光驱安装教程)

以DAEMONTools为例,360软件管家里面就有最新版的下.安装后使用方法如下:第一种方法:在虚拟光驱界面中,你先按一下中间工具栏最左边“+”符号的按钮,添加镜像文件(可以一次添加多个),这...

电脑装系统蓝屏(电脑装系统蓝屏重启开不了机)

蓝屏的原因往往集中在不兼容的硬件和驱动程序、有问题的软件、病毒等。解决办法:1、病毒的原因。使用电脑管家杀毒。2、内存的原因。用橡皮擦把内存条的金手指擦拭一下,把氧化层擦掉,确保内存条安装、运行正常。...

u盘安装软件(u盘安装软件到电视)

第一种情况:软件安装包可以直接下载的。在电脑上将软件安装包下载到本地硬盘,然后将下载好软件安装包拷贝到U盘上即可拿到别的电脑上去安装。分可为exe格式的和rar格式,exe格式直接安装,rar格式的解...

microsoft官网账户注册(microsoft 帐户注册)

要创建Microsoft账户,您可以按照以下步骤进行操作:1.打开任意一个支持浏览器的设备,如电脑、手机或平板电脑。2.在浏览器中输入"Microsoft账户注册"或直接访问Mic...

outlookcom官网(outlook online archive auto)
  • outlookcom官网(outlook online archive auto)
  • outlookcom官网(outlook online archive auto)
  • outlookcom官网(outlook online archive auto)
  • outlookcom官网(outlook online archive auto)
显示器闪屏是什么原因(显示器闪屏是哪里坏了)

解决方法:  一、接触不良导致的显示器闪屏  先查看主机和显示器的电源线连接,是否松动,重新插拔一下电源线。  二、信号干扰导致的显示器闪屏  1、连接显示器的电缆线是否没有屏蔽线圈,如果没有防干扰的...

国产linux操作系统(国产linux操作系统有什么版本)

中国对于操作系统的探索其实并不晚。  早在20世纪60年代中期中国就开始操作系统的研发,那时的比尔·盖茨还只是个迷恋计算机的小字辈,南京大学教授孙钟秀、北京大学杨芙清院士等都是我国操作系统的拓荒者...

免费无需排队的云电脑(不需要排队的云电脑)

目前市场上有一些云游戏平台提供无限时长且无需排队的服务。这些平台通常采用先进的云计算技术和高性能服务器,能够提供稳定流畅的游戏体验。用户可以随时登录并畅玩游戏,无需等待排队。这些平台还提供多种游戏选择...

视频播放器下载量排名(2020视频播放器排行榜)
  • 视频播放器下载量排名(2020视频播放器排行榜)
  • 视频播放器下载量排名(2020视频播放器排行榜)
  • 视频播放器下载量排名(2020视频播放器排行榜)
  • 视频播放器下载量排名(2020视频播放器排行榜)

取消回复欢迎 发表评论: