不使用任何括号从类返回文本(python)

不使用任何括号从类返回文本(python),python,Python,只是想知道如何做到这一点,一个例子是help()命令。 键入help将返回“键入help()以获取交互式帮助,或键入help(object)以获取有关对象的帮助。”,我想执行类似操作 我知道@classmethod在类中使用函数时不需要括号,但与\uuu repr\uu结合使用时,这似乎不起作用 我做了一件很快的事情,当它在键入a()时工作,我希望它在键入a时自己也能返回文本 class a: def __repr__( self ): return str( "test

只是想知道如何做到这一点,一个例子是help()命令。 键入
help
将返回
“键入help()以获取交互式帮助,或键入help(object)以获取有关对象的帮助。”
,我想执行类似操作

我知道
@classmethod
在类中使用函数时不需要括号,但与
\uuu repr\uu
结合使用时,这似乎不起作用

我做了一件很快的事情,当它在键入
a()
时工作,我希望它在键入
a
时自己也能返回文本

class a:
    def __repr__( self ):
        return str( "test" )
print a()
您需要使用:


请注意,
help
是类
站点的一个可调用实例。\u Helper
,而不是一个函数。啊,非常感谢,这很好:)这看起来确实有点像黑客,但没有办法从函数内部执行吗?没有。对于
a
是实例的类,您需要重写
\u repr\uuu
,这是通过使用非
类型
(如图所示)的元类来实现的,该元类定义了适当的
\uuuuuurepr\uuuuuu
class mcs(type):
    def __repr__(self):
        return "test - from metaclass"

class a(object):
    __metaclass__ = mcs
    def __repr__(self):
        return "test"

print a    # test - from metaclass
print a()  # test