Dictionary-Klassenattribut, das auf andere Klassenattribute in der Definition @ verwei
Während es zahlreiche Möglichkeiten gibt, kann ich es aufgrund eines Persönlichkeitsfehlers nicht loslassen, bis ich die Natur des Fehlers verstanden habe.
Versuch:
class OurFavAnimals(object):
FAVE = 'THATS ONE OF OUR FAVORITES'
NOTFAVE = 'NAH WE DONT CARE FOR THAT ONE'
UNKNOWN = 'WHAT?'
FAVES = defaultdict(lambda: UNKNOWN, {x:FAVE for x in ['dog', 'cat']})
FAVES['Crab'] = NOTFAVE
Scheitert mit:
3 NOTFAVE = 'NAH WE DONT CARE FOR THAT ONE'
4 UNKNOWN = 'WHAT?'
----> 5 FAVES = defaultdict(lambda: UNKNOWN, {x:FAVE for x in ['dog', 'cat']})
6 FAVES['Crab'] = NOTFAVE
NameError: global name 'FAVE' is not defined
Warum? Warum kann es @ findUNKNOWN
aber nichtFAVE
? Liegt es daran, dass es sich um ein Wörterbuch handelt?