|
|
|
|
|
by hmry
339 days ago
|
|
Some examples that come to mind:
You can inspect the call stack, and get a list of local variables of your callers.
You can assign to object.__class__ to dynamically change an existing object's class at runtime.
You can overwrite every operator, including obj.field access, dynamically at runtime (including changing an existing class) |
|