Standardverhalten der Methode 'getattr( )'
Posted: 01 Jan 2025, 22:48
Das Internet und andere Ressourcen wie ChatGPT möchten mir sagen, dass dies die Standardimplementierung von getattr() ist:
Meiner Meinung nach kann dies jedoch nicht der Fall sein, denn wenn ich den folgenden Code ausführe:
erhält korrekt den Wert None. Aber wenn ich die oben erwähnte getattr()-Methode einfüge, erhalte ich
als Nachricht:
Das ist absolut verständlich, da die Methode prüft, ob der Wert nicht None ist und andernfalls einen Fehler auslöst. Aber was ist das Standardverhalten?
Code: Select all
def getattr(obj, name, default=None):
try:
# Try to get the attribute
return object.__getattribute__(obj, name)
except AttributeError:
# If the attribute does not exist, check whether a default value has been passed
if default is not None:
return default
# If no default value is specified, trigger the AttributeError
raise
Code: Select all
class ExampleClass:
def __init__(self):
self.example_value = "example"
test = ExampleClass()
test_getattr_not_exists = getattr(test, "unknown_value", None)
print(test_getattr_not_exists) # Output : None
Code: Select all
test_getattr_not_exists
als Nachricht:
Code: Select all
AttributeError: 'ExampleClass' object has no attribute 'unknown_value'