假设有人决定(是的,这很可怕)以以下方式创建句柄输入:用户在导入类后在python控制台上输入命令,该命令实际上是一个类名,类名的__str__
函数实际上是一个有副作用的函数(例如,命令是“north”,该函数更改一些全局变量,然后返回描述当前位置的文本)。显然这是一件愚蠢的事,但你会怎么做(如果可能的话)?在
请注意,基本问题是如何在不创建类实例的情况下为类定义__str__
方法,否则会很简单(但仍然很疯狂:
class ff:
def __str__(self):
#do fun side effects
return "fun text string"
ginst = ff()
>>ginst
可以使用类的实例,而不是类本身。有点像
在控制台中,您将获得对象的表示,它由
__repr__
负责。__str__
用于打印:你要找的是元类
相关问题 更多 >
编程相关推荐