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

Posted JuGooLar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_67面向对象类之特殊成员setitem/getitem/delitem相关的知识,希望对你有一定的参考价值。

#成员的种类 :普通字段  静态字段  普通方法   静态方法  类方法  普通特性
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的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象特殊成员

Python-面向对象之类的特殊成员方法

Python面向对象--类的特殊成员方法

python 面向对象整理 --------3.面向对象进阶--类的特殊成员

Python面向对象-进阶篇(类的特殊成员)

Python 学习笔记 - 面向对象(特殊成员)