summaryrefslogtreecommitdiff
path: root/tests/basics/class_staticclassmethod.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2018-09-28 23:16:56 +1000
committerDamien George <damien.p.george@gmail.com>2018-09-28 23:22:34 +1000
commitdd288904dbaaa6f085252b7457dd10e5abfdb1f2 (patch)
tree95ac8b62fa39b12385e86ecad2cdd0b624e0f523 /tests/basics/class_staticclassmethod.py
parent2eb0170157bb0ce5fe1afc8563b4926b5dcb15bf (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.py15
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]