• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python @property装饰器原理解析

Python @property装饰器原理解析

作者:xiaobaizzZ 字体:[增加 减小] 来源:互联网

xiaobaizzZ 通过本文主要向大家介绍了python,property,装饰器等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

这篇文章主要介绍了Python @property装饰器原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.通过@property装饰器,可以直接通过方法名来访问方法,不需要在方法名后添加一对“()”小括号。

class Person:
  def __init__(self, name):
    self.__name = name
  @property
  def say(self):
    return self.__name
xioabai = Person("xiaobai")
#直接通过方法名来访问say方法
print("我的名字是:", xiaobai.say)
我的名字是: xiaobai

上面程序中,使用@property修饰了say()方法,这就使得该方法变成了name属性的getter方法。

2.使用setter装饰器,可以为say方法添加setter方法。

class Person:
  def __init__(self, name):
    self.__name = name
  @property
  def say(self):
    return self.__name
  @say.setter
  def say(self, value):
    self.__name = value
xiaobai = Person("xiaobai")
xiaobai.say = "xiaohei"
print("我的名字其实是:", xiaobai.say)
我的名字其实是: xiaohei

3.使用deleter装饰器来删除指定属性,可以为say方法添加deleter方法

class Person:
  def __init__(self, name):
    self.__name = name
  @property
  def say(self):
    return self.__name
  @say.setter
  def say(self, value):
    self.__name = value
  @say.deleter
  def say(self):
    self.__name = "xxx"
xiaobai = Person("xiaobai")
del xiaobai.say
print("我的名字其实是:", xiaobai.say)
我的名字其实是: xxx

 

您可能想查找下面的文章:

  • Python底层封装实现方法详解
  • Python实现随机生成任意数量车牌号
  • 使用Python实现Wake On Lan远程开机功能
  • python动态文本进度条的实例代码
  • python基于property()函数定义属性
  • Python 常用的安装Module方式汇总
  • python中OrderedDict的使用方法详解
  • Python编程生成随机用户名及密码的方法示例
  • Python实现统计文本文件字数的方法
  • Python部署web开发程序的几种方法

相关文章

  • Python压缩解压缩zip文件及破解zip文件密码的方法
  • Python中转换角度为弧度的radians()方法
  • 举例区分Python中的浅复制与深复制
  • windows 10下安装搭建django1.10.3和Apache2.4的方法
  • 详解Python中的正则表达式的用法
  • python 字典(dict)遍历的四种方法性能测试报告
  • Python中的变量和作用域详解
  • python中的一些类型转换函数小结
  • Python制作Windows系统服务
  • Python升级提示Tkinter模块找不到的解决方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 编写简单的Python程序来判断文本的语种
    • python 字典(dict)遍历的四种方法性能测试报告
    • python判断图片宽度和高度后删除图片的方法
    • python实现dnspod自动更新dns解析的方法
    • Python用list或dict字段模式读取文件的方法
    • python根据出生年份简单计算生肖的方法
    • 12步教你理解Python装饰器
    • Python中使用语句导入模块或包的机制研究
    • 写了个监控nginx进程的Python脚本
    • 浅谈python中的变量默认是什么类型

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有