如何获取属性的文档字符串属性?
How to get the doc string attribute of a property?
我在学习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
但是当我尝试获取文档时它会引发
AttributeError: 'str' object has no attribute 'doc'
首先,由于 doc 字符串是一个魔法属性,因此它应该采用 double leading and trailing underscore
形式。所以,它是 __doc__
而不是 doc
。
其次,当您尝试从 class 的实例访问 __doc__
时,它会触发实际对象的 doc 属性,在本例中是一个字符串。相反,尝试从 class 对象访问属性:
In [74]: Person.name.__doc__
Out[74]: "I'm the property."
我在学习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
但是当我尝试获取文档时它会引发
AttributeError: 'str' object has no attribute 'doc'
首先,由于 doc 字符串是一个魔法属性,因此它应该采用 double leading and trailing underscore
形式。所以,它是 __doc__
而不是 doc
。
其次,当您尝试从 class 的实例访问 __doc__
时,它会触发实际对象的 doc 属性,在本例中是一个字符串。相反,尝试从 class 对象访问属性:
In [74]: Person.name.__doc__
Out[74]: "I'm the property."