不使用任何括号从类返回文本(python)
只是想知道如何做到这一点,一个例子是help()命令。 键入不使用任何括号从类返回文本(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(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