只是好奇如何做到这一点,一个例子是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()
答案 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