python 类的自定义属性

  可以利用property来为类灵活定义属性

property 原型如下:

class C(object):

    ...

    attrib = property(fget=None, fset=None, fdel=None, doc=None)

o = C()

执行o.attrib,则调用fget指定的函数;

执行o.attrib= value 则调用fset函数;

执行del o.attrib 则调用fdel函数了

doc 为所定义的属性指定docstring

显然如果不设置fset参数则此此属性成为名符其实的只读属性

如下为一个典型的使用示例(节选自Django框架中某处源码)

 

原文地址:https://www.cnblogs.com/johan/p/2843840.html