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

时间:2014-12-07 15:16:51

标签: python

只是好奇如何做到这一点,一个例子是help()命令。 键入help会返回"Type help() for interactive help, or help(object) for help about object.",我想做类似的事情。

我知道@classmethod在使用其中的函数时不需要类中的括号,但是当与__repr__一起使用时,这似乎不起作用。

这是我做的一件很简单的事情,虽然它在输入a()时有效,我希望它在单独输入a时也会返回文字。

class a:
    def __repr__( self ):
        return str( "test" )
print a()

1 个答案:

答案 0 :(得分:2)

您需要使用metaclass

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