-
Notifications
You must be signed in to change notification settings - Fork 8
Description
Currently it's possible to set dictionary items with the same (key) names as existing methods e.g.
x=CleverDict()
x['save']="What a great save!"
x['save']
'What a great save!'
They don't overwrite the existing method (a good thing!) but there is some potentially confusing behaviour:
x
CleverDict({}, _aliases={}, _vars={})
This is because CleverDict.ignore includes {'save_path', 'delete', 'save', '_aliases'}.
Furthermore, although a user is unlikely to import their own data with an existing key of "_aliases", the other three ignored attributes might quite plausibly feature. In this case the solution is just to rename the keys before importing to CleverDict but the danger is that a user might not even know/expect this to be an issue until it becomes one...