如何获取属性的doc字符串属性?

时间:2018-06-19 09:57:40

标签: python python-3.x properties descriptor

当我学习Python描述符时,我遇到了这个例子

class Person(object):
    def __init__(self):
        self._name = ''

    def fget(self):
        print("Getting: %s" % self._name)
        return self._name

    def fset(self, name):
        print("Setting: %s" % name)
        self._name = name.title()

    def fdel(self):
        print("Deleting: %s" %self._name)
        del self._name

    name = property(fget, fset, fdel, "I'm the property.")

使用property函数。 article表示第四个参数是 doc - docstring

p1 = Person()
p1.name = "Islam"
print(p1.name)
print(p1.name.doc)
del p1.name

但是当我尝试进入doc时会引发

AttributeError: 'str' object has no attribute 'doc'

1 个答案:

答案 0 :(得分:1)

首先,由于doc字符串是魔术属性,因此它应该位于__double_leading_and_trailing_underscore__之内,因此它是<ConstraintLayout> ............ <LikeButton> .... </LikeButton> <TextView> .... </TextView> </ConstraintLayout> 而不是__doc__。其次,当您尝试从类的实例访问doc时,它将触发实际对象的doc属性,在本例中是一个字符串。相反,尝试从类对象访问该属性:

__doc__