python中property和setter装饰器用法

作者:人生与戏 时间:2022-04-20 21:38:03 

作用:调用方法改为调用对象, 比如 : p.set_name() 改为 p.set_name

区别:前者改变get方法,后者改变set方法

效果图:

python中property和setter装饰器用法

代码:


class Person:
 def __init__(self,name):
   self._name = name

def get_name(self):
   return self._name

def set_name(self,name):
   self._name = name

p = Person('小黑')
print(p.get_name())
p.set_name('小灰')
print(p.get_name())

class Person:
 def __init__(self,name):
   self._name = name

# 利用property装饰器将获取name方法转换为获取对象的属性
 @property
 def get_name(self):
   return self._name

# 利用property装饰器将设置name方法转换为获取对象的属性
 @get_name.setter
 def set_name(self,name):
   self._name = name

p = Person('小黑')
print(p.get_name)  # 原 p.get_name() , 现 p.get_name
p.set_name = '小灰' # 原 p.set_name('小灰') ,现 p.set_name = '小灰'
print(p.get_name)

标准写法:

效果图:

python中property和setter装饰器用法

代码:


# property装饰器
# 作用: 将一个get方法转换为对象的属性。 就是 调用方法改为调用对象
# 使用条件: 必须和属性名一样

# setter方法的装饰器:
# 作用:将一个set方法转换为对象的属性。 就是 a调用方法改为调用对象
# 使用方法:@属性名.setter

class Person:
 def __init__(self,name):
   self._name = name

# 利用property装饰器将获取name方法转换为获取对象的属性
 @property
 def name(self):
   return self._name

# 利用property装饰器将设置name方法转换为获取对象的属性
 @name.setter
 def name(self,name):
   self._name = name

p = Person('小黑')
print(p.name)  # 原获取 p.name() , 现 p.name
p.name = '小灰' # 原设置 p.name('小灰') ,现 p.name = '小灰'
print(p.name)

来源:https://www.cnblogs.com/FlyingLiao/p/11334097.html

标签:python,property,setter,装饰器
0
投稿

猜你喜欢

  • PHP chunk_split()函数讲解

    2023-06-09 13:54:44
  • 如何使用python对图片进行批量压缩详解

    2022-12-05 04:22:25
  • 如何将 Access 的 Memo 型态字段汇入到 SQL2005 的 nvarchar 型态字段

    2008-12-26 18:13:00
  • python 制作一个gui界面的翻译工具

    2022-04-21 20:16:55
  • 详解python 拆包可迭代数据如tuple, list

    2022-01-08 19:28:43
  • python编写softmax函数、交叉熵函数实例

    2023-11-24 07:08:11
  • 详解Python如何获取视频文件的大小和时长

    2021-12-08 14:50:13
  • Python自然语言处理之词干,词形与最大匹配算法代码详解

    2023-07-23 04:48:37
  • Python中的is和id用法分析

    2021-12-09 17:23:12
  • python爬虫获取新浪新闻教学

    2021-10-13 11:15:41
  • python学习基础之循环import及import过程

    2022-04-02 13:23:25
  • js实现rem自动匹配计算font-size的示例

    2023-08-22 11:02:33
  • python读取txt文件中特定位置字符的方法

    2022-07-02 17:38:52
  • JavaScript几种弹窗事件的使用

    2023-08-24 15:59:08
  • 详解python使用turtle库来画一朵花

    2021-08-30 14:58:49
  • 非原型 不设计

    2010-01-21 12:51:00
  • 数据库自动化技术弥补数据库DBA短缺难题

    2009-02-04 16:53:00
  • 教你隐藏ACCESS数据库的表名

    2008-05-09 19:45:00
  • 关于keras中的Reshape用法

    2021-11-08 00:04:12
  • ASP.NET(C#)读取Excel的文件内容

    2023-07-10 22:38:35
  • asp之家 网络编程 m.aspxhome.com