diff options
author | Damien George <damien.p.george@gmail.com> | 2018-09-28 23:16:56 +1000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2018-09-28 23:22:34 +1000 |
commit | dd288904dbaaa6f085252b7457dd10e5abfdb1f2 (patch) | |
tree | 95ac8b62fa39b12385e86ecad2cdd0b624e0f523 /tests/basics/class_staticclassmethod.py | |
parent | 2eb0170157bb0ce5fe1afc8563b4926b5dcb15bf (diff) |
py/objtype: Support full object model for get/set/delitem special meths.
This makes these special methods have the same calling behaviour as other
methods in a class instance (mp_convert_member_lookup() is already called
by mp_obj_class_lookup()).
Diffstat (limited to 'tests/basics/class_staticclassmethod.py')
-rw-r--r-- | tests/basics/class_staticclassmethod.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/basics/class_staticclassmethod.py b/tests/basics/class_staticclassmethod.py index 1cb59d5c7..edde41927 100644 --- a/tests/basics/class_staticclassmethod.py +++ b/tests/basics/class_staticclassmethod.py @@ -17,9 +17,24 @@ class C: def __add__(self, rhs): print('add', rhs) + # subscript special methods wrapped in staticmethod + @staticmethod + def __getitem__(item): + print('static get', item) + return 'item' + @staticmethod + def __setitem__(item, value): + print('static set', item, value) + @staticmethod + def __delitem__(item): + print('static del', item) + c = C() c.f(0) c.g(0) c - 1 c + 2 +print(c[1]) +c[1] = 2 +del c[3] |