我認爲最好用一個例子來解釋。假設我有一種方法計算兩個向量之間的距離並打印它。我也想要這種方法來打印使用的距離度量。距離度量由調用者以可調用對象的形式給予函數。如果可調用對象是某個類的實例,我可以提供__str__
方法來使其打印出距離度量的名稱。但可調用函數也可以是一個函數,在這種情況下,我還沒有找到方法來改變__str__
。有些代碼:如何統一獲取類和函數的字符串表示形式?
def distance(v1, v2, d):
print d
dist = d(v1, v2)
print dist
return dist
如果d
是一個函數,print d
將打印出類似<function someFunc at 0x1b68830>
。我該如何改變這一點?只要打印出該函數的名字就沒有問題,因爲我通常給它們提供可讀的名字。