首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显式设置方法的docstring

显式设置方法的docstring
EN

Stack Overflow用户
提问于 2011-05-09 08:39:29
回答 2查看 3.9K关注 0票数 8

我帮助维护一个名为nxt-python的python包。它使用元类来定义控制对象的方法。下面是定义可用函数的方法:

代码语言:javascript
复制
class _Meta(type):
    'Metaclass which adds one method for each telegram opcode'

    def __init__(cls, name, bases, dict):
        super(_Meta, cls).__init__(name, bases, dict)
        for opcode in OPCODES:
            poll_func, parse_func = OPCODES[opcode]
            m = _make_poller(opcode, poll_func, parse_func)
            setattr(cls, poll_func.__name__, m)

我希望能够将不同的文档字符串添加到它添加的每个方法中。M是由_make_poller()返回的方法。有什么想法吗?有什么方法可以绕过python对更改文档字符串的限制吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-09 08:40:56

对于普通函数:

代码语言:javascript
复制
def f():  # for demonstration
    pass

f.__doc__ = "Docstring!"
help(f)

这在python2和python3中都有效,适用于定义了文档字符串和未定义文档字符串的函数。你也可以做+=。请注意,它是__doc__而不是__docs__

对于方法,您需要使用方法的__func__属性:

代码语言:javascript
复制
class MyClass(object):

    def myMethod(self):
        pass

MyClass.myMethod.__func__.__doc__ = "A really cool method"
票数 17
EN

Stack Overflow用户

发布于 2011-05-09 10:00:21

您还可以在类/函数对象上使用setattr并设置文档字符串。

代码语言:javascript
复制
setattr(foo,'__doc__',"""My Doc string""")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5931386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档