Standardverhalten der Methode 'getattr( )'Python

Python-Programme
Anonymous
 Standardverhalten der Methode 'getattr( )'

Post by Anonymous »

Das Internet und andere Ressourcen wie ChatGPT möchten mir sagen, dass dies die Standardimplementierung von getattr() ist:

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
Meiner Meinung nach kann dies jedoch nicht der Fall sein, denn wenn ich den folgenden Code ausführe:

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
erhält korrekt den Wert None. Aber wenn ich die oben erwähnte getattr()-Methode einfüge, erhalte ich
als Nachricht:

Code: Select all

AttributeError: 'ExampleClass' object has no attribute 'unknown_value'
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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post