首页 > 其他 > 详细

关于反射的几个内置函数的补充及包装标准类型

时间:2019-09-29 00:43:01      阅读:125      评论:0      收藏:0      [点我收藏+]

一、我们在前面的章节中学习了  __getattr__  __setattr__ 以及 __delattr__的用法,

其实这些都是类的内置函数,如果我们在自己定义的类里重写了这几个函数,

会直接覆盖了类中这几个函数的默认功能,换个角度,我们可以直接改写这些函数,让它在已有

功能的基础上添加新功能

class Foo:
    x = 2
    def __init__(self,y):
        self.y = y

    def __delattr__(self, item):
        print("正在执行__setattr__,这里可加新功能哦")
        self.__dict__.pop(item)

f1 = Foo(7)
print(f1.__dict__)
del f1.y
print(f1.__dict__)

技术分享图片 

二、包装一个标准类型

list  str  tuple  等等都是类

我们可以创建新类继承他们,同时增加新功能

class List(list):

    def show_midle(self):  #求列表中间值
        mid_index = int(len(self)/2)
        return self[mid_index]

l2 = List(‘hellojinling‘)
print(l2.show_midle())
print(l2)

技术分享图片  

class List(list):

    def append(self,p_object):  #修改append方法
        print("正在添加")
        if type(p_object) is str:  #判断一下,只添加字符串
            super().append(p_object)

    def show_midle(self):  #求列表中间值
        mid_index = int(len(self)/2)
        return self[mid_index]

l2 = List(‘hellojinling‘)
print(l2)
l2.append("LOVE")
print(l2)

技术分享图片  

 

 

关于反射的几个内置函数的补充及包装标准类型

原文:https://www.cnblogs.com/dabai123/p/11605584.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!