collections.namedtuple工厂函数

collections.namedtuple是一个工厂函数,它可以用来构建一个带字段名的元组和一个有名字的类——这个带名字的类对调试程序有很大帮助。

以往存在一定量数据习惯以列表或json的方式保存,例如:

列表:

1 nodes = [
2     [‘192.168.1.1‘, 22, ‘guest‘],
3     [‘192.168.1.2‘, 22, ‘guest‘],
4 ]
5 for i in nodes:
6     print(i[1])

列表的坏处是以数字作脚注,数据对应关系不直观

json:

1 nodes = [
2     {‘ip‘: ‘192.168.1.1‘, ‘port‘: 22, ‘user‘: ‘guest‘},
3     {‘ip‘: ‘192.168.1.2‘, ‘port‘: 22, ‘user‘: ‘guest‘},
4 ]
5 for i in nodes:
6     print(i[‘user‘])

效率不算特别好,随着数量增大冗余字段名越多,相对比较占用内存

namedtuple:

1 myOpt = namedtuple(‘node‘, ‘ip port user‘)
2 nodes = [
3     myOpt(‘192.168.1.1‘, 22, ‘guest‘),
4     myOpt(‘192.168.1.2‘, 22, ‘guest‘)
5 ]
6 for i in nodes:
7     print(i.user)

占用内存相对较小,而且字段名直观

原文地址:https://www.cnblogs.com/hell-west-road/p/11331986.html

时间: 2024-11-06 09:51:16

collections.namedtuple工厂函数的相关文章

namedtuple工厂函数,创造一个像实例对象的元祖(感觉到了Python的奇妙与可爱之处)。

发现了namedtuple将大大的方便对象实例化的过程,底层我觉的应该应用了描述符的相关指令__set__,__get__,__delete__等等,深的不讲了,我给自己记号一下如何把这个函数用好. 基本概念 namedtuple是一个 工厂函数,定义在python标准库的collections模块中,使用此函数可以创建一个可读性更强的元组 namedtuple函数所创建(返回)的是一个 元组的子类(python中基本数据类型都是类,且可以在buildins模块中找到) namedtuple函数

对象工厂函数与构造函数

本文内容: 1.概述 2.使用工厂函数创建对象 3.定义对象“构造”函数 4.对象的constructor属性 5.以普通方式调用的对象“构造”函数 ★概述: 使用对象字面量,或者向空对象中动态地添加新成员,是最简单易用的对象创建方法.然而,除了这两种常用的对象创建方式,JavaScript还提供了其他方法创建对象. ★使用工厂函数创建对象 我们可以编写一个函数,此函数的功能就是创建对象,可以将其称为“对象工厂方法”. ★ 定义对象“构造”函数 注意点:对象构造函数首字母大写:内部使用this关

用工厂函数封装对象

工厂函数是在方法中建立一个Object空对象,然后再对此对象添加属性和方法,然后把Object对象返回 <html> <head> <title>工厂函数封装对象</title> <script type="text/javascript"> // 工厂函数模式封装对象 //特点:返回结果为对象的函数,在用工厂函数创建对象的时候,一定要new function fn(nianling){ var obj=new object(

flask 使用程序工厂函数 和 蓝本中实现程序功能

使用程序工厂函数 在单个文件中开发程序很方便,但却有个很大的缺点,因为程序在全局作用域中创建,所以无法动态修改配置. 运行脚本时,程序实例已经创建,再修改配置为时已晚.这一点对单元测试尤其重要,因为有时为了提高测试覆盖度,必须在不同的配置环境中运行程序. 这个问题的解决方法是延迟创建程序实例,把创建过程移到可显式调用的工厂函数中.这种方法不仅可以给脚本留出配置程序的时间,还能够创建多个程序实例,这些实例有时在测试中非常有用.程序的工厂函数在 app 包的构造文件中定义,如示例 7-3 所示.构造

(转)论python工厂函数与内建函数

所谓工厂函数就是指这些内建函数都是类对象, 当你调用它们时,实际上是创建了一个类实例. 工厂函数: int(),long(),float(),complex(),bool() str(),unicode(),basestring() list(),tuple():生成列表或者元组 type():查看类型 dict():生成一个字典 set():   生产可变集合 frozenset():生成不可变集合 object() classmethod():声明一个类方法 staticmethod():声

1.1了解工厂函数、选着器以及常见的对象函数

一.什么是工厂函数==>$()? 1.它是一个函数. 2.它用来创建对象. 3.它想工厂一样,"生产"出来的函数都是"标件". 二.什么是选择器? 1.jQuery 选择器允许您对 HTML 元素组或单个元素进行操作. 2.jQuery 选择器基于元素的 id.类.类型.属性.属性值等"查找"(或选择)HTML 元素. 它基于已经存在的css选择器,除此之外,它还有一些自定义的选择器. 3.jQuery 中所有选择器都以美元符号开头:$()

Javascript我学之六对象工厂函数与构造函数

本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘. 概述 使用对象字面量,或者向空对象中动态地添加新成员,是最简单易用的对象创建方法. 然而,除了这两种常用的对象创建方式,JavaScript还提供了其他方法创建对象. 1).使用工厂函数创建对象 我们可以编写一个函数,此函数的功能就是创建对象,可将其称为“对象工厂方法”. 1 //工厂函数 2 function createPerson(name, age, job) { 3 var o = new Object(); 4 o.name

jQuery分析(2) - $工厂函数分析

jQuery分析(2) - $工厂函数分析 前言 从这节进入jQuery的世界,首先从jQuery的入口函数开始了解jQuery()或$是如何运作的,这里我给出了一个最小的例子来分析. 回忆 在进入分析代码前我们回想下jQuery的使用方法有哪些呢? selector,[context] selector:用来查找的字符串 context:作为待查找的 DOM 元素集.文档或 jQuery 对象. element 一个用于封装成jQuery对象的DOM元素 object 一个用于封装成jQuer

jQuery基础,定时器,工厂函数

这个星期刚刚学的JQuery,下面我来说说我学的这几个例子 jQuery是JavaScript的一个程序库. Jquery的工厂函数$(): 在Jquery中 $符号等价于jquery,作用是将DOM对象转化为Jquery对象. 下面我来写几个定时器的案列 定时函数:setTimeout()用于在指定的毫秒后调用函数或者计算表达式 语法:setTimeout(“调用的函数名称”,等待的毫秒数) 下面我来使用这个函数实现3秒后弹出对话框 <script type="text/javascri