我正在使用客戶端提供的類(我無法訪問目標代碼),並試圖檢查對象是否具有屬性。該屬性本身是隻寫的,所以hasattr
失敗:Python:檢查只寫屬性的類
>>> driver.console.con.input = 'm'
>>> hasattr(driver.console.con, 'input')
False
>>> simics> @driver.console.con.input
Traceback (most recent call last):
File "<string>", line 1, in <module>
Attribute: Failed converting 'input' attribute in object
'driver.console.con' to Python: input attribute in driver.console.con
object: not readable.
是否有不同的方法來檢查,如果一個屬性存在?
想到EAFP,你可以把它包裝在'try'塊中,除了'AttributeError',如果它不存在? – RichSmith
如果您嘗試訪問您尚未創建的屬性,它會說「不可讀」嗎?如果是這樣,你可以檢查異常對象的消息是否包含「不可讀」。 – Blender
@RichSmith目前我正在考慮攻擊這個問題。我也想知道這背後是什麼。 –