`
luozhaoyu
  • 浏览: 343159 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python的property函数

阅读更多
python的builtin函数property其实很简单,其实就像java中bean的概念一样。可以控制类中变量的访问规则,property()函数实现的原理应该就是几天前写的__getattr__,__getattribute__等等函数有关。
有人回想,为什么python要控制变量的访问?难道实现不了private和protected么?变量命名是用两条下划线不能使变量private么?
很遗憾,不可以。两条下划线只是起到规范的作用,可能会报警,但是如果你愿意的话,还是可以无碍访问的。而且随着python版本变化搞不好以后这招还有可能不灵。所以我们需要property函数

class Propt(object):


    def __init__(self):
        self.__a2 = 'a2'
        self._a1 = 'a1'
        self.a = 'a'
        self._field1 = 'field1'


    @property
    def field1(self):
        print("field1 got")
        return self._field1

    
    @field1.setter
    def field1(self, val):
        print("field1 set")
        self._field1 = val

    
p = Propt()
print(p.field1)
p.field1 = 'a'

输出结果是:
field1 got
field1
field1 set

真的是非常简单,如果你把函数field加上@property,那么_field1就是只读的,除非你再加上field1.setter。
有个小疑问是,变量名可不可以改成其它的?比如说abcdefg,而保持函数名不变?嗯,这是没问题的,只不过千万不要改成field这个名字,变量名和函数名重复的话会死循环的。
分享到:
评论

相关推荐

    python中@property和property函数常见使用方法示例

    主要介绍了python中@property和property函数常见使用方法,结合实例形式分析了Python @property和property函数功能、使用方法及相关操作注意事项,需要的朋友可以参考下

    学学Python_45类的成员04 property函数

    Python中属性的概念,property函数,对应文件:ClassElement4。文章:https://blog.csdn.net/yysyangyangyangshan/article/details/84455039

    Python中property函数用法实例分析

    主要介绍了Python中property函数用法,结合实例形式分析了property函数的功能、参数、使用方法及相关操作注意事项,需要的朋友可以参考下

    python基于property()函数定义属性

    主要介绍了python基于property()函数定义属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    python函数与方法的区别总结

    内置函数:python内嵌的一些函数。 匿名函数:一行代码实现一个函数功能。 递归函数 自定义函数:根据自己的需求,来进行定义函数。 (2)方法的分类: 普通方法:直接用self调用的方法。 私有方法:__函数名,只能...

    Python内置函数property()如何使用

    主要介绍了Python内置函数property()如何使用,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下

    Python Property属性的2种用法

     在该类中定义三个函数,分别用作赋值、取值和删除变量(此处表达也许不很清晰,请看示例)  def getx(self):  return self.__x  def setx(self,value):  self.__x=value  def delx(self):  del self.__x  x...

    Python中property属性实例解析

    本文主要讲述的是对Python中property属性(特性)的理解,具体如下。 定义及作用: 在property类中,有三个成员方法和三个装饰器函数。 三个成员方法分别是:fget、fset、fdel,它们分别用来管理属性访问; 三个...

    Python2 内置函数大全

    Python 内置函数 内置函数 abs() divmod() input() open() staticmethod() all() enumerate() int() ord() str() any() eval() isinstance() pow() sum() basestring() execfile()...

    async_property:异步属性的Python装饰器

    您可以使用@async_property ,你会与刚@property ,但异步函数。 class Foo : @ async_property async def remote_value ( self ): return await get_remote_value () 现在,属性remote_value返回一个等待的...

    Python-函数和内存分析 2.zip

    089.构造函数__init__ 090.实例属性_内存分析 091.实例方法_内存分析方法调用过程_dir()_isinstance 092.类对象 093.类属性_内存分析创建类和对象的底层 094.类方法_静态方法_内存分析图示 095.__del__()析构方法和...

    python-memoized-property:一个简单的python装饰器,用于定义仅运行其fget函数一次的属性

    memoized_property 一个简单的python装饰器,用于定义仅运行其fget函数一次的属性。 免费软件:BSD许可证什么? 仅一次调用其fget函数的Python属性。 您编写了多少次此代码(或类似代码)? def class C(object): @...

    通过实例了解python property属性

    这篇文章主要介绍了通过实例了解python property属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 什么是property属性 一种用起来像是使用的实例属性...

    Python 类,property属性(简化属性的操作),@property,property()用法示例

    本文实例讲述了Python 类,property属性(简化属性的操作),@property,property()用法。分享给大家供大家参考,具体如下: property属性的创建方式有两种:1.@property装饰器方式 2.类属性方式 ( 类属性=property...

    2019千峰Python超详细入门教程(百度云盘分享).docx

    ├─千锋Python教程:第06章 函数与高阶函数(7集)) │ │ .DS_Store │ │ │ ├─code │ │ 10、函数也是一种数据.py │ │ 11、匿名函数.py │ │ 12、map&reduce;.py │ │ 13、filter.py │ │ 14、sorted....

    Python高级property属性用法实例分析

    本文实例讲述了Python高级property属性用法。分享给大家供大家参考,具体如下: property属性 1.property属性: 是一个提高开发者用户体验度的属性,可以将一个函数改造的像属性一样。 例: # 定义的时候像是一个...

    Python列表list常用内建函数实例小结

    主要介绍了Python列表list常用内建函数,结合实例形式总结分析了Python列表list常见内建函数的功能、使用方法及相关操作注意事项,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics