python列表_Python列表抽象
子类别清单
如果您坚持,则可以将列表子类化:
class ListContainer(list):
def play(self, *args, **kwargs):
for item in self:
item.play(*args, **kwargs)
def close(self, *args, **kwargs):
for item in self:
item.close(*args, **kwargs)
(顺便说一句,您将传递给容器方法的所有内容,都会传递给每个项目,除非发生错误)
那样工作:
>>> class Sound(object):
def __init__(self, name):
self.name = name
def play(self):
print('Playing %s' % (self.name,))
def close(self):
print('Closing %s' % (self.name,))
>>> container = ListContainer([Sound('a'), Sound('b'), Sound('c')])
>>> container.play()
Playing a
Playing b
Playing c
>>> container.close()
Closing a
Closing b
Closing c
更好的解决方案
但是你不应该.更好的解决方案是显式地执行此操作:
container = [a, b, c]
# ...
for item in container:
item.play()
请记住,显式胜于隐式.这就是为什么通常最好遍历各个项目并一一称呼它们.
更糟糕的解决方案
如果要隐式调用列表项的方法,则有一种方法;)下面是首先搜索列表属性的实现,如果未找到,将假定它是一种方法并将调用列表中的每个项:
class BadImplicitContainer(list):
def __getattr__(self, name):
def _wrapper(*args, **kwargs):
for item in self:
getattr(item, name)(*args, **kwargs)
return _wrapper
这就是以前片段示例中的行为:
>>> container = BadImplicitContainer([Sound('bad'), Sound('Bad'), Sound('BAD')])
>>> container.play()
Playing bad
Playing Bad
Playing BAD
python列表_Python列表抽象相关推荐
- python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解
python列表切片和嵌套列表取值操作详解 给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中, ...
- python向空列表添加列表_Python列表核心知识点汇总
千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要的.约 ...
- python字符串转化列表_Python列表到字符串的转换
python字符串转化列表 Sometimes we want to convert the list to a string so that we can print it or log it fo ...
- python追加_python列表追加
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 创建一个字符列表,执行命令 l1=print(l1)print(l1)print ...
- python已知有列表_python 列表常用方法
1.在列表末尾添加新的对象 1 li=[11,22,33,'aa','bb','cc'] 2 li.append('dd') 3 print(li) 2.清空列表 1 li=[11,22,33,'aa ...
- python如何建立列表_python列表的用法
1.什么是列表 1.列表是一种容器(用来存储数据对象) 2.列表能够存储多个数据对象 - 序列 3.列表是一个可变序列 4.列表中的数据元素们会有先后顺序 2.创建列表的方式 1.使用字面值的方式创建 ...
- .net网格怎么把值插入指定列表_Python列表有什么内置函数可以使用,怎么使用这些函数...
序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字(它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.) Python序列的列表是最常用的Python数据类型.所以很多 ...
- python总结字典集合列表_python 列表,元组,字典,集合,字符串相互转换
本文主要介绍列表,元组,字典,集合以及和字符串之间的相互转换. 1. 列表与元组的互换 # 将列表转化为元组 li = [1, 2, 3] t = tuple(li) print(t, type(t) ...
- python相关函数_python列表相关函数
1.python中可用于列表的函数 (1)cmp(list1, list2) 比较两个列表的元素 (2)len(list) 列表元素个数 (3)max(list) 返回列表元素最大值 (4)min(l ...
最新文章
- 前端 ----jQuery的动画效果
- Flutter开发之布局-1-Column(15)
- 十八、数据容器、数据访问宽度、端口(计算机对数据处理方式:读取、写入、运算;数据可存放三个地方:CPU内部、内存、端口)
- “老年”程序员带你用Python玩街霸,你的童年用编程实现也很简单
- 训练自己的数据_PyTorch版CenterNet训练自己的数据集
- npm 报错 Module build failed: Error: No PostCSS Config found in:
- 图解 Scala 基本语法 V2018.12.17
- comps电磁场模拟软件_opera电磁仿真软件
- 火狐扩展下载失败_Firefox中扩展程序和主题安装失败的解决方法
- python解决八数码问题_python八数码
- 安全标准ISO 17799/27001
- 事件委托(事件代理)是什么?有什么用?
- 逆元 阶乘逆元 数论 HDU 5651 xiaoxin juju needs help
- 更改浏览器默认的网址
- 【浅谈电商】如何防止重复支付
- Error evaluating ORM mappings block for domain
- 财宝通告诉你如何利用网络POS机及时到账功能养卡
- 【Windows Server 2019】DNS服务器的配置与管理——DNS正向解析
- element ui table实现考勤排班表
- (05)2020-12-07(选择器)
热门文章
- 日常撕逼:React和Vue到底谁更牛?
- mysql根据已有表创建新表_SQL根据现有表新建一张表
- m 文件 dll matlab 中调用_利用USO服务将特权文件写入武器化
- 新鲜出炉 | 临床基因组学数据分析实战开课啦!!!
- 抖音张一鸣:我的大学四年收获及工作感悟
- 你的数据也可以-三篇NAR的数据库
- 赠你一只金色的眼 - 富集分析和表达数据可视化
- Mac剪切板神器——Clipsy「记住999条剪贴板记录」
- mathmagic pro mac使用教程|快速地创建任何方程
- mac os 开启redis_高并发大流量,总会想到它!来一起通过docker搭建redis集群