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()).
This commit is contained in:
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user