如何解决如何在python中为不同对象获取关于help的不同文档
我有一个带有帮助消息的类,该类应取决于__init__
的输入参数,例如:
class A:
'''
{}
'''
def __init__(self,x):
A.__doc__ = A.__doc__.format(x)
但是当我跑步时
x = A("xxxxx")
y = A("yyyyy")
help(x)
help(y)
两个help()
通话都收到相同的消息:
Help on A in module __main__ object:
class A(builtins.object)
| xxxxx
|
:
是否可以为不同的对象创建不同的文档?
解决方法
在帮助中使用的__doc__
成员是类的__doc__
,而不是实例的成员。 这意味着只能有一个。请参见数据模型的special method lookup section:
对于自定义类,只有在定义了对象类型的情况下,才能保证对特殊方法的隐式调用正确工作
我对细节不熟悉,但是似乎类的__doc__
属性只能设置一次。这意味着您将获得在创建的第一个实例中设置的文档字符串。也许有人会对此有所了解。
替代方法?
所以现在的问题是,您是否想要一个功能,该功能以您描述的方式表现。因为您想要一个不同的文档字符串,所以我想您希望每个实例具有不同的行为(否则,为什么要一个不同的文档字符串?)。如果您有一组派生类,那可能会更清楚。如果不是这种情况,那么有助于您了解要解决的特定问题。
然后,您可以有一个提供给定参数的工厂方法,该方法将创建适当类型的对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。