首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python变量命名使用(个人总结

众多编程语言一样,Python变量命名有一定规范: 变量名只能包含字母、数字、下划线且不能以数字开头。例如,num_1 为正确命名,而 1_num 则错误。...变量名不允许含空格,但是可以用下划线来分割单词。num_list 是可行,num list 则会引发错误。 不要将Python关键字和函数名作为变量名,关键字即Python用于特殊用途单词。...有一个需要注意地方,就是命名变量时候,小心使用小写字母 l 和大写字母 O,因为它们可能会被错看为数字 1 和 0 。...Python,虽然变量可以使用大写字母,但是尽量避免使用大写字母。...附上:Python关键字 False class finally is return None continue for lambda try True def from nonlocal while

1.2K10

python高级编程】namedtuple用法--给元组每个元素命名

参考链接: Python命名元组Namedtuple 为什么要给元组每个元素命名  给每个元组元素命名我们就可以使用名字去访问对应元素,相对于索引访问,这样可以大大提高程序可读性。 ...使用元组赋值法  c语言中,我们可以定义常量来命令,或者使用枚举变量来完成,而在python,可以使用元组赋值法进行。...调用该函数后,它会返回一个tuple类型子类(python基本数据类型都是类),这个子类中文名称为具名元组。 ...使用普通元组时,我们只能通过索引下标去访问对应元素,而namedtuple,我们既可以使用索引下标去访问,也可以通过名字去访问,增加了代码可读性。 ...typename: 参数类型为字符串,具名元组返回一个元组子对象,我们要为这个对象命名,传入typename参数即为子对象名称

2.4K40
您找到你想要的搜索结果了吗?
是的
没有找到

2 . python Collectio

nametuple() 是具有命名字段元组工厂函数 命名元组元组每个位置赋予含义,并允许更具可读性自编写代码  它们可以在任何使用常规元组地方使用,并且他们添加了按名称而不是位置索引访问字段功能..._source                 带有纯Python源代码字符串,用于创建命名元组类。 源使得命名元组自我记录。 它可以打印,使用exec()执行,或保存到文件并导入。     ..._fields                 列出字段名称字符串元组。 用于内省和从现有命名元组创建新命名元组类型。 ?             ...要检索名称存储字符串字段,请使用getattr( )函数: ?             ...由于命名元组是常规Python类,因此可以使用子类轻松添加或更改功能。以下是如何添加计算字段和固定宽度打印格式方法: ?

1.1K10

python入门-变量和赋值

变量赋值 其实,Python赋值语句我们之前学习过程已经接触了很多,比如a=1,就是将数值1赋值给变量a。 正式介绍赋值语句之前,我们先了解下Python变量问题。...Python定义变量时候,不需要声明变量。当我们首次为变量赋值时候,会自动创建变量并指定类型。...虽然名称不同,但是计算机它们却代表是同一个元素,看看他们内存地址。...为什么?其实,这两数值66和77本质上计算机就是两个对象,只不过它们刚好有个相同名字而已。...(language) print(number) 99 python [1, 3, 5, 7, 9] 变量名称命名规则 python变量命名可以使用名称,比如上面的x、y、z、a、b等,也可以使用具有一定描述作用名称

23140

Python基础-5 常用数据结构

(iterable) 构造器会返回一个列表,其中iterable项值和顺序都相同。...元组 元组是不可变序列,通常用于存储多项集。或用于需要数据不可变情况(如存储到set)。...圆括号只是可选,生成空元组或需要避免语法歧义情况除外。例如,f(a, b, c) 是调用函数时附带三个参数,而 f((a, b, c)) 则是调用函数时附带一个三元组。...2.3 扩展内容:命名元组 通过名称访问相比通过索引访问更清晰,collections.namedtuple() 提供了命名元组方法。...,还可以使用 getattr() 函数 : getattr(p, 'x') 转换一个字典到命名元组使用 ** 两星操作符 d = {'x': 11, 'y': 22} Point(**d) 命名元组是一个正常

73030

PKW: namedtuple 和 pathlib 简介(第 5 期)

问题或建议,请公众号留言或加本人微信; 如果你觉得文章对你有帮助,欢迎加微信交流 namedtuple 元组 元组列表相类似的数据结构,其区别就是元组元素是不可用修改。...namedtuple 是元组升级版本,通过 namedtuple 函数创建是一个元组子类。...而且具名元组和普通元组所消耗内容是相同,既可以通过 index 来访问具名元组元素,也可以使用具名元组每个字段名称来访问数据。...定义 如下是 Python 源码 namedtuple 定义 # namedtuple is special-cased in the type checker; the initializer is...我们主要关注版本大于3.7定义 typename:参数类型为字符串,就是该具名元组名称 field_names:是字符串类型或者字符串类型可迭代对象 实例 from collections import

36520

Python 5种下划线含义都是什么?

通配符导入不同,常规导入不受前导单个下划线命名约定影响: 3 小结 如果遵循PEP8推荐,避免通配符导入,只需要记住: 单个下划线是一个Python命名约定,表示这个名称是供内部使用。...让我们来看看这个列表,并寻找我们原始变量名称foo,_bar和__baz - 我保证你会注意到一些有趣变化。 self.foo变量属性列表显示为foo。 self....我们来看一看: 当我们尝试查看t2 .__ baz值时,为什么我们会得到AttributeError? 名称修饰被再次触发了!...在下面的代码示例,我将汽车元组拆分为单独变量,但我只对颜色和里程值感兴趣。 但是,为了使拆分表达式成功运行,我需要将包含在元组所有值分配给变量。...在这种情况下,“_”作为占位符变量可以派上用场: 你可以一个解释器会话访问先前计算结果,或者是动态构建多个对象并与它们交互,无需事先给这些对象分配名字: 3 说明 除了用作临时变量之外,“

1.3K40

流畅 Python 第二版(GPT 重译)(三)

命名元组,这些元数据位于._fields和._fields_defaults类属性。您可以使用dataclasses模块fields函数从装饰dataclass类获取相同元数据。...提示 由namedtuple构建每个实例占用内存量元组相同,因为字段名称存储。 示例 5-4 展示了我们如何定义一个命名元组来保存有关城市信息示例。 示例 5-4....特别是,两种命名元组变体都生成tuple子类,仅添加按名称访问字段能力,并提供一个列出字段名称_fields类属性,作为字符串元组。...Python 变量就像 Java 引用变量;一个更好比喻是,变量视为附加到对象名称标签。下一个示例和图将帮助您理解为什么。...在编程时,我们通常更关心对象值而不是对象身份,因此 Python 代码,==比is出现得更频繁。 但是,如果您要将变量单例进行比较,则使用is是有意义

5500

作为Python中级程序员,有句话不知当讲不当讲 ( ̄へ ̄)

):函数定义所在模块(文件)名字空间 B-Builtin(Python):Python内置模块名字空间 Python命名空间是一个字典,字典内保存了变量名称对象之间映射关系,因此,查找变量名就是命名空间字典查找键...Python,所谓闭包是一个包含有环境变量取值函数对象。环境变量取值被保存在函数对象 __closure__ 属性。比如下面的代码: ? __closure__ 里包含了一个元组。...这个元组每个元素是cell类型对象。我们看到第一个cell包含就是整数15,也就是我们创建闭包时环境变量b取值。 下面看一个闭包实际例子: ?...这个例子,函数line环境变量a,b构成闭包。...不同之处在于,虽然return语句完全终止了一个函数,但是yield语句暂停保存函数所有状态,然后在后续调用时继续执行。 ? 为什么Python使用生成器?

1.1K20

27 个问题,告诉你Python为什么这么设计

为什么Python没有属性赋值“with”语句? 为什么 if/while/def/class语句需要冒号? 为什么Python列表和元组末尾允许使用逗号? 为什么使用缩进来分组语句?...一个是性能:知道字符串是不可变,意味着我们可以创建时为它分配空间,并且存储需求是固定不变。这也是元组和列表之间区别的原因之一。 另一个优点是,Python 字符串被视为数字一样“基本”。...换句话说,局部变量和实例变量存在于两个不同命名空间中,您需要告诉 Python 使用哪个命名空间。 为什么不能在表达式赋值?...因此,使用lambda而不是本地定义函数唯一优点是你不需要为函数创建一个名称 -- 这只是一个分配了函数对象(lambda表达式生成对象类型完全相同)局部变量!...如果你尝试查找旧值,也不会找到它,因为该哈希表中找到对象值会有所不同。 如果你想要一个用列表索引字典,只需先将列表转换为元组;用函数 tuple(L) 创建一个元组,其条目列表 L相同

6.6K11

软件测试人工智能|Python 变量解析:从基础概念到内存地址探究

变量类型介绍变量时,可以提及 Python 中常见变量类型,例如整数、浮点数、字符串、布尔值、列表、元组、字典等。...变量定义 Python 定义变量,代码如下:# 通过赋值创建变量x = 10name = 'Alice'my_list = [1, 2, 3]变量命名规则变量名可以包含字母、数字、下划线,但不能以数字开头...Python 是大小写敏感,因此变量大小写字母是不同。避免使用 Python 关键字(如 if、for、while 等)作为变量名。...x = 10print(id(x)) # 输出 x 内存地址可变不可变对象Python 某些数据类型是不可变(如整数、字符串、元组),而某些是可变(如列表、字典)。...它们允许我们程序存储和操作数据。通过理解变量概念、定义、使用方法以及内存地址关系,我们能够更好地掌握 Python 编程基础知识。希望本文能够帮到大家。

14810

Python中下划线5种含义

它通常不由Python解释器强制执行,仅仅作为一种对程序员提示。 2. 单末尾下划线 var_ 有时候,一个变量最合适名称已经被一个关键字所占用。...双下划线前缀会导致Python解释器重写属性名称,以避免子类命名冲突。 这也叫做名称修饰(name mangling) - 解释器更改变量名称,以便在类被扩展时候不容易产生冲突。...让我们来看看这个列表,并寻找我们原始变量名称foo,_bar和__baz - 我保证你会注意到一些有趣变化。 self.foo变量属性列表显示为未修改为foo。 self....单个下划线仅仅是一个有效变量名称,会有这个用途而已。 在下面的代码示例,我将汽车元组拆分为单独变量,但我只对颜色和里程值感兴趣。...但是,为了使拆分表达式成功运行,我需要将包含在元组所有值分配给变量

1.5K70

Python下划线5种含义代码实例解析

因此,像class或def这样名称不能用作Python变量名称。...双下划线前缀会导致Python解释器重写属性名称,以避免子类命名冲突。 这也叫做名称修饰(name mangling) – 解释器更改变量名称,以便在类被扩展时候不容易产生冲突。...让我们来看看这个列表,并寻找我们原始变量名称foo,_bar和__baz – 我保证你会注意到一些有趣变化。 self.foo变量属性列表显示为未修改为foo。 self....最好避免自己程序中使用以双下划线(“dunders”)开头和结尾名称,以避免与将来Python语言变化产生冲突。...单个下划线仅仅是一个有效变量名称,会有这个用途而已。 在下面的代码示例,我将汽车元组拆分为单独变量,但我只对颜色和里程值感兴趣。

67320

掌握 Python 中下划线 5 个潜规则

它通常不由Python解释器强制执行,仅仅作为一种对程序员提示。 ” 2. 单末尾下划线 var_ 有时候,一个变量最合适名称已经被一个关键字所占用。...双下划线前缀会导致Python解释器重写属性名称,以避免子类命名冲突。 这也叫做名称修饰(name mangling) - 解释器更改变量名称,以便在类被扩展时候不容易产生冲突。...让我们来看看这个列表,并寻找我们原始变量名称foo,_bar和__baz ,我保证你会注意到一些有趣变化。 self.foo变量属性列表显示为未修改为foo。 self....单个下划线仅仅是一个有效变量名称,会有这个用途而已。 在下面的代码示例,我将汽车元组拆分为单独变量,但我只对颜色和里程值感兴趣。...但是,为了使拆分表达式成功运行,我需要将包含在元组所有值分配给变量

50620

Python 5 种不同下划线含义你都知道吗?

它通常不由Python解释器强制执行,仅仅作为一种对程序员提示。 ” 2. 单末尾下划线 var_ 有时候,一个变量最合适名称已经被一个关键字所占用。...双下划线前缀会导致Python解释器重写属性名称,以避免子类命名冲突。 这也叫做名称修饰(name mangling) - 解释器更改变量名称,以便在类被扩展时候不容易产生冲突。...让我们来看看这个列表,并寻找我们原始变量名称foo,_bar和__baz ,我保证你会注意到一些有趣变化。 self.foo变量属性列表显示为未修改为foo。 self....单个下划线仅仅是一个有效变量名称,会有这个用途而已。 在下面的代码示例,我将汽车元组拆分为单独变量,但我只对颜色和里程值感兴趣。...但是,为了使拆分表达式成功运行,我需要将包含在元组所有值分配给变量

85031

Python专家编程系列: 5. 下划线命名约定(Underscores in Python)

介绍 各种python编码规范,都对命名规则做了很详细约定。 但是下划线和变量名称组合,python中都有特定含义。...此通配符导入不包括私有导入,这就是为什么尝试访问单前下划线变量时引发异常原因。除了变量以外,函数命名也是一样规则。 所以这里它是由Python解释器强制执行。...总结: 单前下划线类成员命名,约定是类内部可见。实际访问是不受限制。 单前下划线变量和函数,py文件定义,被其它py文件导入时是不可见,这是被Python解释器执行。..._Double__b 2 从上面的输出,可以看到 self.a 没有改变并且行为方式相同。 但是__b为了避免名称子类发生冲突而Double__id。...这些神奇方法Python具有特殊意义。 最好避免自己程序中使用以双下划线(“dunders”)开头和结尾名称,以避免与将来Python语言变化产生冲突。

18640

干货 | 27 个问题,告诉你 Python 为什么如此设计?

一个是性能:知道字符串是不可变,意味着我们可以创建时为它分配空间,并且存储需求是固定不变。这也是元组和列表之间区别的原因之一。 另一个优点是,Python 字符串被视为数字一样“基本”。...换句话说,局部变量和实例变量存在于两个不同命名空间中,您需要告诉 Python 使用哪个命名空间。 06. 为什么不能在表达式赋值?...因此,使用 lambda 而不是本地定义函数唯一优点是你不需要为函数创建一个名称 -- 这只是一个分配了函数对象( lambda 表达式生成对象类型完全相同)局部变量! 13....如果要强制 Python 释放时删除某些内容,请使用 atexit 模块运行一个函数,强制删除这些内容。 17. 为什么有单独元组和列表数据类型?...如果你尝试查找旧值,也不会找到它,因为该哈希表中找到对象值会有所不同。 如果你想要一个用列表索引字典,只需先将列表转换为元组;用函数 tuple(L)创建一个元组,其条目列表 L相同

2.7K10

Python 作用域规则和闭包简析

本文摘录《Python参考手册(第4版)》相关论述: 每次执行一个函数时, 就会创建心得局部命名空间。该命名空间代表一个局部环境,其中包含函数参数名称和在函数体内赋值变量名称。...由于foo函数全局命名空间中找到了变量a,foo函数便返回三个变量和。 闭包 上述Python作用域规则具有普遍性。然而,Python“一切皆对象”,函数也不例外。...不过之前例子不同是,函数foo我们还嵌套了一个函数bar,并且还定义了两个变量,这个函数是作为函数foo返回值。...它有几个比较重要属性: co_name:函数名称 co_nlocals: 函数使用局部变量个数 co_varnames: 一个包含局部变量名字元组 co_cellvars: 是一个元组,包含嵌套函数所引用局部变量名字...co_freevars: 是一个元组,保存使用外层作用域中变量名 co_consts: 是一个包含字节码使用字面量元组 其余属性可以参考Python文档。

83240

Python 核心设计理念27个问题及解答

一个是性能:知道字符串是不可变,意味着我们可以创建时为它分配空间,并且存储需求是固定不变。这也是元组和列表之间区别的原因之一。 另一个优点是,Python 字符串被视为数字一样“基本”。...换句话说,局部变量和实例变量存在于两个不同命名空间中,您需要告诉 Python 使用哪个命名空间。 06. 为什么不能在表达式赋值?...因此,使用 lambda 而不是本地定义函数唯一优点是你不需要为函数创建一个名称 -- 这只是一个分配了函数对象( lambda 表达式生成对象类型完全相同)局部变量! 13....如果要强制 Python 释放时删除某些内容,请使用 atexit 模块运行一个函数,强制删除这些内容。 17. 为什么有单独元组和列表数据类型?...如果你尝试查找旧值,也不会找到它,因为该哈希表中找到对象值会有所不同。 如果你想要一个用列表索引字典,只需先将列表转换为元组;用函数 tuple(L) 创建一个元组,其条目列表 L相同

3.3K21

27 个问题,告诉你Python为什么这么设计?

一个是性能:知道字符串是不可变,意味着我们可以创建时为它分配空间,并且存储需求是固定不变。这也是元组和列表之间区别的原因之一。 另一个优点是,Python 字符串被视为数字一样“基本”。...换句话说,局部变量和实例变量存在于两个不同命名空间中,您需要告诉 Python 使用哪个命名空间。 为什么不能在表达式赋值?...因此,使用lambda而不是本地定义函数唯一优点是你不需要为函数创建一个名称 -- 这只是一个分配了函数对象(lambda表达式生成对象类型完全相同)局部变量!...虽然列表和元组许多方面是相似的,但它们使用方式通常是完全不同。可以认为元组类似于Pascal记录或C结构;它们是相关数据小集合,可以是不同类型数据,可以作为一个组进行操作。...如果你尝试查找旧值,也不会找到它,因为该哈希表中找到对象值会有所不同。 如果你想要一个用列表索引字典,只需先将列表转换为元组;用函数 tuple(L) 创建一个元组,其条目列表 L相同

3.1K20
领券