码迷,mamicode.com
首页 > 编程语言 > 详细

Python_67面向对象类之特殊成员setitem/getitem/delitem

时间:2018-06-01 13:40:02      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:min   charm   修饰符   har   led   sig   support   set   私有   

#成员的种类 :普通字段  静态字段  普通方法   静态方法  类方法  普通特性
class FFF:
x=‘xxxxxdddd‘
__x1=‘x11111111‘ #‘__‘就是成员修饰符,x1就是被修饰后的变量字段 私有的 只能在内部访问
def __init__(self):
print (‘111‘)
self.__name=‘name222‘ #这个name依旧是那个私有的字段 依旧是不可被调用的
def fetch(self,bak):
print (bak)
print (FFF.__x1)
def __call__(self, *args, **kwargs):
print (‘calll1111‘)



class Bar(FFF):
def fetch(self):
print (‘bbbbar‘)

bbb=Bar()
bbb()
bbb[‘k1‘]
输出——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

Traceback (most recent call last):
File "D:/Users/Administrator/PycharmProjects/untitled/venv/yingshe/chengyuanxiushifu.py", line 22, in <module>
bbb[‘k1‘]=5
TypeError: ‘Bar‘ object does not support item assignment
111
calll1111

这里的这个bbb[‘k1‘]这个报错,是因为没有调用添加成员的方法  __getitem__()

******************************************************************************************************************************************************************************************************************************************************************************

#成员的种类 :普通字段  静态字段  普通方法   静态方法  类方法  普通特性
class FFF:
x=‘xxxxxdddd‘
__x1=‘x11111111‘ #‘__‘就是成员修饰符,x1就是被修饰后的变量字段 私有的 只能在内部访问
def __init__(self):
print (‘111‘)
self.__name=‘name222‘ #这个name依旧是那个私有的字段 依旧是不可被调用的
def fetch(self,bak):
print (bak)
print (FFF.__x1)
def __call__(self, *args, **kwargs):
print (‘calll1111‘)
def __getitem__(self, item):
print (item)



class Bar(FFF):
def fetch(self):
print (‘bbbbar‘)

bbb=Bar()
bbb()
bbb[‘k1‘] #中括号 默认执行 getitem方法 同理还有setitem delitem方法 这一套操作下来就是仿照字典的操作
输出——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

111
calll1111
k1

这里就可以了,不会报错了

*****************************************************************************************************************************************************************************************************************************************************************************

 

#成员的种类 :普通字段  静态字段  普通方法   静态方法  类方法  普通特性
class FFF:
x=‘xxxxxdddd‘
__x1=‘x11111111‘ #‘__‘就是成员修饰符,x1就是被修饰后的变量字段 私有的 只能在内部访问
def __init__(self):
print (‘111‘)
self.__name=‘name222‘ #这个name依旧是那个私有的字段 依旧是不可被调用的
def fetch(self,bak):
print (bak)
print (FFF.__x1)
def __call__(self, *args, **kwargs):
print (‘calll1111‘)
def __getitem__(self, item):
print (item)
def __setitem__(self, key, value):
print (key,value)



class Bar(FFF):
def fetch(self):
print (‘bbbbar‘)

bbb=Bar()
bbb()
bbb[‘k1‘]=123
输出——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

111
calll1111
k1 123

 

 

 

*****************************************************************************************************************************************************************************************************************************************************************************

 

#成员的种类 :普通字段  静态字段  普通方法   静态方法  类方法  普通特性
class FFF:
x=‘xxxxxdddd‘
__x1=‘x11111111‘ #‘__‘就是成员修饰符,x1就是被修饰后的变量字段 私有的 只能在内部访问
def __init__(self):
print (‘111‘)
self.__name=‘name222‘ #这个name依旧是那个私有的字段 依旧是不可被调用的
def fetch(self,bak):
print (bak)
print (FFF.__x1)
def __call__(self, *args, **kwargs):
print (‘calll1111‘)
def __getitem__(self, item):
print (item)
def __setitem__(self, key, value):
print (key,value)
def __delitem__(self, key):
print (‘delitem‘)



class Bar(FFF):
def fetch(self):
print (‘bbbbar‘)

bbb=Bar()
bbb()
bbb[‘k1‘]=123
del bbb[‘k1‘]
输出————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

111
calll1111
k1 123
delitem

 

 

****************************************************************************************************************************************************************************************************************************************************************************

 

 

 

 

 

 

****************************************************************************************************************************************************************************************************************************************************************************

 

Python_67面向对象类之特殊成员setitem/getitem/delitem

标签:min   charm   修饰符   har   led   sig   support   set   私有   

原文地址:https://www.cnblogs.com/beyondtring/p/9120825.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!