property属性

  • 概念:

    • 定义一个方法但是使用装饰器property,只可以有一个self形参
    • 可以用这样的属性动态的获取属性的值
  • 定义方式(经典类)
 class Fun():
@property
def size(self):
return 100 fun = Fun()
print(fun.size)

100

  • 定义方式(新式类)
class Fun():
def __init__(self):
self.num = 0 @property
def price(self):
print("get @property")
return self.num @price.setter
def price(self, value):
self.num = value
print("set @price.setter") @price.deleter
def price(self):
print("del @price.deleter") obj = Fun()
print(obj.price) # 可以获取价格,调用property装饰器
obj.price = 100 # 修改价格,调用price.setter装饰器
del obj.price # 删除价格,调用price.deleter装饰器
get @property
0
set @price.setter
del @price.deleter`
  • 使用property方法来创建property属性

可以使用proerty来替代原有的封装的set和get方法

#coding=utf-8
class Foo(object):
def get_bar(self):
print("getter...")
return "laowang" def set_bar(self, value):
"""必须两个参数"""
print("setter...")
return 'set value' + value def del_bar(self):
print("deleter...")
return "laowang" BAR = property(get_bar, set_bar, del_bar, "description...") obj = Foo() obj.BAR # 自动调用第一个参数中定义的方法:get_bar
obj.BAR = "alex" # 自动调用第二个参数中定义的方法:set_bar方法,并将“alex”当作参数传入
desc = Foo.BAR.__doc__ # 自动获取第四个参数中设置的值:description...
print(desc)
del obj.BAR # 自动调用第三个参数中定义的方法:del_bar方法

Python中property属性的概论和使用方法的更多相关文章

  1. python 中 property 属性的讲解及应用

    Python中property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回 property属性的有两种方式: 1. 装饰器 即:在方法上应用装饰器 2. 类属性 即 ...

  2. python中property属性的介绍及其应用

    Python的property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回. 使用property修饰的实例方法被调用时,可以把它当做实例属性一样 property的 ...

  3. python 中property函数如何实现

    实际上,在python中property(fget,fset,fdel,doc)函数不是一个真正的函数,他其实是拥有很多特殊方法的类. 这特殊类总的很多方法完成了property函数中的所有工作,涉及 ...

  4. python中@property装饰器的使用

    目录 python中@property装饰器的使用 1.引出问题 2.初步改善 3.使用@property 4.解析@property 5.总结 python中@property装饰器的使用 1.引出 ...

  5. 【转】python之property属性

    1. 什么是property属性 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 # ############### 定义 ############### class Foo: def ...

  6. OC中@property属性关键字的使用(assign/weak/strong/copy)

    OC中@property属性关键字的使用(assign/weak/strong/copy) 一.assign 用于 ‘基本数据类型’.‘枚举’.‘结构体’ 等非OC对象类型 eg:int.bool等 ...

  7. Python中的属性访问与描述符

    Python中的属性访问与描述符 请给作者点赞--> 原文链接 在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作.例如,有一个类实例对象foo,它有一个nam ...

  8. Python中执行系统命令常见的几种方法--转载

    Python中执行系统命令常见的几种方法 Python中执行系统命令常见的几种方法有: (1)os.system # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 # 如果再命令行下执 ...

  9. Python中日期和时间格式化输出的方法

    本文转自:https://www.jb51.net/article/62518.htm 本文实例总结了python中日期和时间格式化输出的方法.分享给大家供大家参考.具体分析如下: python格式化 ...

随机推荐

  1. tensorflow按需分配GPU问题

    使用tensorflow,如果不加设置,即使是很小的模型也会占用整块GPU,造成资源浪费. 所以我们需要设置,使程序按需使用GPU. 具体设置方法: gpu_options = tf.GPUOptio ...

  2. Android学习03

    ToggleButton和Switch 状态开关ToggleButton与开关switch也是由button按钮派生出来的,因此他们的本质也是按钮,button支持的各种属性,方法toggleButt ...

  3. HTML中的meta元素

    <meta>元素必须放在<head>标记内,而且必须写在HTML文件前1024B之内 <meta>元素的主要目的是提供有关这份HTML文件的相关信息.例如编码方式, ...

  4. 解决:hudson.plugins.git.GitException: Could not init

    解决:

  5. Centos7 虚拟环境安装Django 出现ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' %Database.sqlite_version)错误

    Centos7 虚拟环境安装Django 出现SQLite版本问题 raise ImproperlyConfigured('SQLite 3.8.3 or later is required (fou ...

  6. 让你的逼格瞬间提升的十个Python语法!

    Python 是一种代表简单思想的语言,其语法相对简单,很容易上手.不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了.本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并 ...

  7. Linux - 删除文件的正确方式

    mv <file> /tmp/ cp <file> /opt/file.bak rm

  8. 抽取JDBC工具类

    package com.wbytts.util; import java.io.IOException; import java.io.InputStream; import java.sql.Con ...

  9. WLC HA (for AP)?

    在WLC的配置上,如果有AP注册到WLC,我们实际上可以看到两部分配置: part I part II 问题来了,那么这两部分是什么关系呢?是不是一样的呢? 从目前的了解来看,我的认知是这两个配置都是 ...

  10. intellij idea 整合springboot和mybatis

    参考: http://blog.csdn.net/winter_chen001/article/details/77249029