2015-05-11 30 views
0

通常,在Python中輸出對象時,需要定義在__repr__中返回的字符串,但是如果您希望它返回其他內容,例如整數或元組?在Python中引用對象時返回特定的數據類型

我舉個例子。我的班級是Users,並且存在成員變量self.usernameself.email。如果我想輸出一個Users類型的對象,我怎樣才能讓它返回(self.username,self.email)作爲元組?

+0

'return repr(integer)'或'return repr(tuple)'? – vaultah

+0

你能舉一個你爲什麼想要這樣做的例子嗎? – Kevin

+0

是否有任何特定的原因,你希望它返回一個元組,例如'(「Kevin」,「[email protected]」)而不是一個看起來像元組的字符串,比如''(「Kevin」,「 [email protected]「)''? – Kevin

回答

0

對象的屬性__*__是爲了實現由Python語言標準化內部功能。像__add__(這是用來提供的object + whatever結果,__repr__預計將在規定的方式行事,這將包括返回(一)一定的數據類型(S)。

雖然靜態類型語言將報告編譯期一對於像Python這樣的動態類型語言來說,這可能會導致意外的(但不是未定義的!)運行時行爲,這甚至不會導致錯誤信息,因此,千萬不要改變這種行爲,以免出乎意料。想要返回自定義的東西,請使用類似get_info(self)或類似的自定義方法(請勿使用__*__名稱)