2015-06-02 21 views
3

我想讓我的類具有基於類變量(可能在派生類中不同)的字符串表示形式。 This answer表明,元類可能是要走的路:Python中的類的字符串表示形式3

class MC(type): 
    def __repr__(self): 
     return 'Wahaha!' 

class C(): 
    __metaclass__ = MC 

print(C) 

但是,這並不在Python 3工作,返回

<class '__main__.C'> 

,而不是Wahaha!。 有人可以向我解釋Python 2和Python 3之間的變化以及Python 3中如何改變它?

+0

備註:PEP 8建議每個縮進使用4個空格,而不是2個。通常,與其他人做同樣的事情會使生活變得更簡單。我的確編輯了你的問題,以免讓新人認爲偏離標準建議是一個好主意。 – EOL

回答

5

什麼改變是如何在3.x中聲明元類。

class C(metaclass=MC): 
    pass 
相關問題