广州建网站兴田德润可信,免费网站申请域名,临沂酒店建设信息网站,wordpress添加支付教程1.if __name__ __main__
1.1解释
if __name__ __main__: 是 Python 中的一个常见惯用法#xff0c;用于确定一个 Python 脚本是被直接运行还是被导入为模块使用。
在 Python 中#xff0c;每个模块都有一个特殊的内置变量 __name__#xff0c;该变量的值决定了模块的运…1.if __name__ __main__
1.1解释
if __name__ __main__: 是 Python 中的一个常见惯用法用于确定一个 Python 脚本是被直接运行还是被导入为模块使用。
在 Python 中每个模块都有一个特殊的内置变量 __name__该变量的值决定了模块的运行方式。具体来说
如果一个 Python 脚本是被直接执行的即通过命令行或脚本编辑器运行那么 __name__ 的值将会是字符串 __main__。如果一个 Python 脚本是被导入为一个模块到其他脚本中使用的那么 __name__ 的值将是该脚本的模块名。
因此if __name__ __main__: 的作用是检查当前脚本是否是被直接运行的。只有当脚本被直接运行时才会执行 if 语句块中的代码这通常包含了脚本的主要逻辑。
这个惯用法非常有用因为它允许编写可重用的模块其中包含了一些功能但只有在模块被直接执行时才会运行。当模块被导入到其他脚本中时通常是希望避免执行模块中的主要逻辑而只是定义和提供函数、类等。
1.2示例
例如考虑一个名为 my_module.py 的模块
def my_function():print(This is my function.)if __name__ __main__:print(This is the main part of my_module.)my_function()如果你直接运行 my_module.py将输出
This is the main part of my_module.
This is my function.但如果将 my_module.py 导入到另一个脚本中例如 other_script.py然后运行 other_script.py你只会看到 This is my function. 的输出而不会看到 This is the main part of my_module.因为 if __name__ __main__: 部分不会执行。
2.collections.Mapping
2.1解释
collections.Mapping 是 Python 中的一个抽象基类Abstract Base ClassABC它用于表示映射类型即可用于存储键-值对的数据结构的基类。
映射类型是一种可迭代的、可存储键-值对的数据结构通常用于实现字典dict等数据类型。这些数据结构允许使用键来访问相应的值而不仅仅是按照索引访问元素。
collections.Mapping 提供了一种通用的方式来测试一个对象是否属于映射类型。这在某些情况下很有用特别是当需要检查一个对象是否可以像字典一样使用时。通常Python 的字典dict和其他映射类型都会继承自 collections.Mapping因此它们都可以被视为映射类型。
2.2示例
演示如何使用 isinstance 来检查对象是否属于映射类型
from collections.abc import Mapping# 创建一个字典
my_dict {key1: value1, key2: value2}# 使用 isinstance 检查是否为映射类型
if isinstance(my_dict, Mapping):print(my_dict is a mapping type.)
else:print(my_dict is not a mapping type.)在这个示例中首先创建了一个字典 my_dict然后使用 isinstance 来检查它是否属于映射类型。由于字典是映射类型的一种所以输出结果将是 my_dict is a mapping type.。
总之collections.Mapping 是一个抽象基类用于表示映射类型它提供了一种通用的方法来测试一个对象是否可以被视为映射类型例如字典。