zoukankan      html  css  js  c++  java
  • Python练习-基于授权方式包装list之与根儿哥必有一战

     1 # 编辑者:闫龙
     2 # 基于授权定制自己的列表类型,要求定制的自己的__init__方法,
     3 # 定制自己的append:只能向列表加入字符串类型的值
     4 # 定制显示列表中间那个值的属性(提示:property)
     5 # 其余方法都使用list默认的(提示:__getattr__加反射)
     6 class MyList:
     7     def __init__(self,*args):#自定义__init__函数
     8         self.list = list(args)#*args会将多个值变为元组,咱们在这里把它再变成列表传递给self.list
     9     def __str__(self):#自定义__str__函数
    10         return str(self.list)#每次print 的时候显示列表
    11     def append(self,x):#自定义append方法
    12         if(isinstance(x,str)):#判断将要传入列表的值是否为字符串
    13             self.list.append(x)
    14             print(x, "已被添加到MyList中")
    15         else:
    16             raise TypeError("只可以传入字符串")#主动抛出类型错误异常
    17     def __getattr__(self, item):#当在MyList中未找到传入的name时调用此方法
    18         return getattr(self.list,item)#其他未实现的方法,使用list自身的方法
    19     @property
    20     def whoiscenter(self):#根儿哥这个文化底蕴啊,真是要了亲命了,半天没看懂
    21         #定制显示列表中间那个值的属性(提示:property)
    22         #你TMD就不会个断句吗?来,哥教你:指定,显示列表中间值,的属性(使用property实现)
    23         return self.list[len(self.list)//2]
    24 
    25 ml = MyList(1,2,3)
    26 ml.append("4")
    27 ml.pop(0)#验证__getattr__是否成功
    28 print(ml)
  • 相关阅读:
    display:none;与visibility:hidden;的区别
    前端优化:雅虎35条
    JQ中find()和filter()的区别
    attr属性
    媒体查询器(转)@media screen and
    javascript解决URL (转)
    使用 js 处理 html entities(转)
    FileReader详解与实例---读取并显示图像文件
    HTML5中File对象初探
    createTextRange和createRange的一些用法(重点)
  • 原文地址:https://www.cnblogs.com/DragonFire/p/6758114.html
Copyright © 2011-2022 走看看