首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是Python中的“命名元组”?

什么是Python中的“命名元组”?

提问于 2017-12-15 06:00:57
回答 2关注 0查看 430

阅读Python 3.1的变化,我发现了一些...意想不到的事情:

sys.version_info元组现在是一个命名的元组:

我从来没有听说过命名元组,我认为元素可以通过数字(如元组和列表)或键(如在字典中)进行索引。我从来没有想到他们可以被两种方式索引。

因此,我的问题是:

  1. 什么是命名元组?
  2. 如何使用它们?
  3. 为什么/何时应该使用命名的元组而不是普通的元组?
  4. 为什么/何时应该使用普通的元组而不是命名的元组?
  5. 是否有任何一种“命名列表”(命名元组的可变版本)?

回答 2

不知雨

发布于 2017-12-15 06:52:04

对于对象/模块,你也可以

代码语言:txt
复制
代码语言:txt
AI代码解释
复制
'var' in dir(obj)

例如,

代码语言:txt
AI代码解释
复制
>>> class Something(object):
代码语言:txt
AI代码解释
复制
...     pass
代码语言:txt
AI代码解释
复制
...
代码语言:txt
AI代码解释
复制
>>> c = Something()
代码语言:txt
AI代码解释
复制
>>> c.a = 1
代码语言:txt
AI代码解释
复制
>>> 'a' in dir(c)
代码语言:txt
AI代码解释
复制
True
代码语言:txt
AI代码解释
复制
>>> 'b' in dir(c)
代码语言:txt
AI代码解释
复制
False

御姐万岁

发布于 2017-12-15 06:51:44

使用try / except是测试变量存在的最好方法。但是,设置/测试全局变量几乎肯定是一个更好的方法。

例如,如果你想在第一次调用某个函数的时候初始化一个模块级的变量,那最好用这样的代码:

代码语言:txt
AI代码解释
复制
my_variable = None
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
def InitMyVariable():
代码语言:txt
AI代码解释
复制
  global my_variable
代码语言:txt
AI代码解释
复制
  if my_variable is None:
代码语言:txt
AI代码解释
复制
    my_variable = ...
和开发者交流更多问题细节吧,去 写回答
相关文章
【python高级编程】namedtuple用法--给元组中的每个元素命名
给每个元组中的元素命名,我们就可以使用名字去访问对应元素,相对于索引访问,这样可以大大提高程序的可读性。
用户7886150
2020/12/24
3.1K0
python高级用法之命名元组namedtuple
要获取username的话 ,就需要用a[0]的方式去获取,当元组中数据比较多的时候,用下标的方式获取数据就容易写错索引值。在这些场景下,用tuple存储数据就没那么方便,就会采用其他的方式去存储数据。
小博测试成长之路
2021/03/08
6560
python高级用法之命名元组namedtuple
【说站】python命名元组如何理解
2、这些是类似字典的构造,可以在其中通过索引、键名或 getattr()函数访问属性值。
很酷的站长
2022/11/24
2290
【说站】python命名元组如何理解
Python中的元组
元组(Tuple)用于将多个对象保存到一起。你可以将它们近似地看作列表,但是元组不能提供列表类能够提供给你的广泛的功能。元组的一大特征类似于字符串,它们是不可变的,也就是说,你不能编辑或更改元组。元组是通过特别指定项目来定义的,在指定项目时,你可以给它们加上括号,并在括号内部用逗号进行分隔。元组通常用于保证某一语句或某一用户定义的函数可以安全地采用一组数值,意即元组内的数值不会改变。
benym
2022/07/14
9950
python中的元组
和列表一样 也可以使用数字索引提取元素中的值 然而最常用的方法是将元组解包为一组变量:
py3study
2020/01/13
1.2K0
Python元组是什么
列表用的比较多了,方法基本上都是常规的数组操作:对数组的增删改查。对了,还有Python列表最屌的操作,数组的切片操作。
烟草的香味
2019/12/02
5470
Python中的元组介绍
之前的文章中介绍了Python中的字符串的操作,接下来了解Python中的另一个数据类型:元组(tuple)
小博测试成长之路
2021/10/13
9450
Python中的元组介绍
(三十八) 初遇python之NamedTuple命名元组
各位读者大大们大家好,今天学习python的NamedTuple命名元组,并记录学习过程欢迎大家一起交流分享。
XXXX-user
2019/07/23
4320
(三十八) 初遇python之NamedTuple命名元组
python中的列表与元组
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
六小登登
2019/08/14
3.5K0
Python元组_python元组的定义方式
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164967.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/19
8170
C++_什么是命名空间
命名空间:实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。 如: namespace ns1 //指定命名中间nsl { int a; double b; } namespace 是定义命名空间所必须写的关键字,nsl 是用户自己指定的命名空间的名字(可 以用任意的合法标识符,这里用ns1是因为ns是namespace的缩写,含义请楚),在花括号内是声明块,在其中声明的实体称为命名空间成员(namespace member)。现在命名空间成员包括变量a和b,注意a和b仍然是全局变量,仅仅是把它们隐藏在指定的命名空间中而已。如果在程序中要使用变量a和b,必须加上命名空间名和作用域分辨符“::”,如nsl::a,nsl::b。这种用法称为命名空间限定(qualified),这些名字(如nsl::a)称为被限定名 (qualified name)。C++中命名空间的作用类似于操作系统中的目录和文件的关系,由于文件很多,不便管理,而且容易重名,于是人们设立若干子目录,把文件分别放到不同的子目录中,不同子目录中的文件可以同名。调用文件时应指出文件路径。 命名空间的作用:是建立一些互相分隔的作用域,把一些全局实体分隔开来。以免产生老点名叫李相国时,3个人都站起来应答,这就是名字冲突,因为他们无法辨别老师想叫的是哪一个李相国,同名者无法互相区分。为了避免同名混淆,学校把3个同名的学生分在3个班。这样,在小班点名叫李相国时,只会有一个人应答。也就是说,在该班的范围(即班作用域)内名字是惟一的。如果在全校集合时校长点名,需要在全校范围内找这个学生,就需要考虑作用域问题。如果校长叫李相国,全校学生中又会有3人一齐喊“到”,因为在同一作用域中存在3个同名学生。为了在全校范围内区分这3名学生,校长必须在名字前加上班号,如高三甲班的李相国,或高三乙班的李相国,即加上班名限定。这样就不致产生混淆。 可以根据需要设置许多个命名空间,每个命名空间名代表一个不同的命名空间域,不同的命名空间不能同名。这样,可以把不同的库中的实体放到不同的命名空间中,或者说,用不同的命名空间把不同的实体隐蔽起来。过去我们用的全局变量可以理解为全局命名空间,独立于所有有名的命名空间之外,它是不需要用 namespace声明的,实际上是由系统隐式声明的,存在于每个程序之中。 在声明一个命名空间时,花括号内不仅可以包括变量,而且还可以包括以下类型: ·变量(可以带有初始化); ·常量; ·数(可以是定义或声明); ·结构体; ·类; ·模板; ·命名空间(在一个命名空间中又定义一个命名空间,即嵌套的命名空间)。 例如
瑞新
2020/07/07
8450
Python元组_python输出元组
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/165086.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/19
1.5K0
Python中的具名元组类用法
>>> from collections import namedtuple >>> Point = namedtuple('Point', ['x', 'y', 'z']) #创建具名元组类 >>> Point <class '__main__.Point'> >>> p = Point(3, 4, 5) #实例化对象 >>> p Point(x=3, y=4, z=5) >>> p.x #访问成员 3 >>> p._fields #查看字段列表 ('x', 'y', 'z') >>> p._r
Python小屋屋主
2018/04/16
1.3K0
Python 中数据的处理(元组) ——(一)
学一门程序语言,你得清楚这个这个程序是怎么存储数据得把,你只有了解了它得存储结构,才能进行更深刻得数据处理把,下面我来讲讲我在学得过程中Python 得三种数据处理中会用到得存储结构
Gorit
2021/12/09
9940
Python 中数据的处理(元组) ——(一)
什么是Python 中的EAFP 哲学
Python 有一套自己的哲学,其中 EAFP 是其中比较有名的。它的全称是Easier to Ask for Forgiveness than Permission——寻求原谅比获得授权更容易。
青南
2020/09/03
1.7K0
什么是Python 中的EAFP 哲学
python中变量命名
*from module import *时候,仅仅会导入__all__中定义的变量。
全栈程序员站长
2022/07/08
6960
python中变量命名
数据类型· 第1篇《元组和列表的性能分析、命名元组》
ipython 是个交互环境,就跟我们输入 Python 进去是一样的。只不过它外面做了一层封装,比 Python 交互环境更好用一点。
清菡
2020/12/16
7220
数据类型· 第1篇《元组和列表的性能分析、命名元组》
python中的变量命名规则
There are only two hard things in Computer Science: cache invalidation and naming things. 在计算机科学领域只有两件难事:缓存失效 和 给东西起名字
全栈程序员站长
2022/09/02
1.4K0
点击加载更多

相似问题

为什么未命名的命名空间是静态的“高级”替代?

2319

Python命名空间的解释是什么?

2374

Python中“super”是做什么的?

2515

什么是Python 3的“python -m SimpleHTTPServer”?

21.1K

请问为什么消息的唯一标示是个四元组?

1167
相关问答用户
某公司 | 程序员擅长1个领域
腾讯云TDP | 先锋会员擅长2个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档