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...
Currently it's possible to set dictionary items with the same (key) names as existing methods e.g.
They don't overwrite the existing method (a good thing!) but there is some potentially confusing behaviour:
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...