我认为最好用一个例子来解释。假设我有一种方法计算两个向量之间的距离并打印它。我也想要这种方法来打印使用的距离度量。距离度量由调用者以可调用对象的形式给予函数。如果可调用对象是某个类的实例,我可以提供__str__
方法来使其打印出距离度量的名称。但可调用函数也可以是一个函数,在这种情况下,我还没有找到方法来改变__str__
。有些代码:如何统一获取类和函数的字符串表示形式?
def distance(v1, v2, d):
print d
dist = d(v1, v2)
print dist
return dist
如果d
是一个函数,print d
将打印出类似<function someFunc at 0x1b68830>
。我该如何改变这一点?只要打印出该函数的名字就没有问题,因为我通常给它们提供可读的名字。