我正在Python中創建一個名爲House的類。它有實例變量,如街道名稱和街道號碼。
Python調用類對象的返回
h = House(1234, "main street")
>>>h.street_name
Main Street
>>>h.street_number
1234
>>>h
<__main__.House object at 0x27ffbd0>
當你打電話「H」
,程序應該返回「1234主街」來代替。我應該如何處理這個問題?
我正在Python中創建一個名爲House的類。它有實例變量,如街道名稱和街道號碼。
Python調用類對象的返回
h = House(1234, "main street")
>>>h.street_name
Main Street
>>>h.street_number
1234
>>>h
<__main__.House object at 0x27ffbd0>
當你打電話「H」
,程序應該返回「1234主街」來代替。我應該如何處理這個問題?
你想定義一個返回字符串表示的__str__
方法。例如:
class House:
# other methods
def __str__(self):
return "%d %s" % (self.street_number, self.street_name)
'__repr__'應該返回有效的Python表達式,如果可能的話重建對象。 '__str__'用於轉換爲字符串。 – 2013-02-17 02:20:30
@CatPlusPlus:謝謝,修正 – 2013-02-17 02:43:44
.... Python中的類叫做家。它具有實例變量....
一個類沒有實例變量。實例有
。
'變量'是Python中令人困惑的詞。
Python不向開發者提供「變量」(=盒),只有對象。
什麼人混淆地稱'變量'是大多數時候的標識符(=名稱)....或者也許...什麼...我不知道,他們不知道自己,因爲沒有變量在使用Python中的開發者....
。
不能調用h
如果它不是一個可調用對象(類,函數....)
你的名字「呼叫」什麼根本的需求的Python爲您呈現對象h。由於它不是一個簡單的對象,而是一個整數或一個字符串,而是一個實例,也就是說一個屬性是數據屬性和方法的對象,所以Python不會爲您提供廣泛的實例及其所有屬性和屬性的值(對某些實例來說可能很長),它會向您顯示實例的簡短描述,說明它是哪個類的實例,並提供其地址。
Python命令提示符不是「調用」對象,而是調用對象的'__repr __()'方法,該方法假定返回一個代表對象值的字符串。如果該對象沒有'__repr __()'方法,但有'__str __()'方法,它將使用該方法。對於沒有任何一個類的課程,您看到的是默認方法返回的內容。 – martineau 2013-02-17 02:12:42
當你說「call h」時,你的意思是'h()'? – chepner 2013-02-17 05:20:51