Ich verwende eine Klasse von einem Client (ich habe keinen Zugriff auf den Objektcode), und ich versuche zu überprüfen, ob ein Objekt ein Attribut hat. Das Attribut selbst ist nur schreiben, so dass die hasattr
versagt:Python: Auf schreib nur attr einer Klasse
>>> 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.
Gibt es eine andere Art und Weise zu überprüfen, ob ein Attribut vorhanden ist?
Denken Sie an EAFP, könnten Sie es in einen 'try' Block und außer' AttributeError' wickeln, wenn es nicht existiert? – RichSmith
Wird "nicht lesbar" angezeigt, wenn Sie versuchen, auf ein Attribut zuzugreifen, das Sie nicht erstellt haben? Wenn dies der Fall ist, können Sie einfach überprüfen, ob die Nachricht des Ausnahmeobjekts 'nicht lesbar' enthält. – Blender
@RichSmith Das ist derzeit die Art und Weise, wie ich daran dachte, das Problem anzugreifen. Ich frage mich auch, was dahinter steckt. –