Python 'as' 关键字

2025年1月5日 | 阅读8分钟

Python 以其灵活性和可读性而闻名,它具有许多使编码更轻松、增加功能的功能。其中一项功能就是 'as' 关键字,这是一个用于处理异常、别名和导入的有用工具。本文深入探讨了 'as' 关键字的细微之处,探讨了它的各种应用和最佳方法。

Python 'as' Keyword

让我们看一些在 Python 中使用 'as' 关键字的示例。

导入别名

在导入语句中,'as' 关键字对于为模块和包名称设置别名非常强大。此外,开发人员可以通过使用 'as' 运算符分配附加名称来停止命名空间冲突并提高代码的可读性。例如

示例

输出

Sine of 3.141593 radians:0.000000
Cosine of 3.141593 radians:-1.000000
Tangent of 3.141593 radians:-0.000000

代码解释

在上面的代码中,我们计算了一个角度的正弦、余弦和正切。第一步,我们导入 Pandas 库用于数据操作,导入 NumPy 用于数值运算()。然后,它定义角度为 pi 弧度。接下来,为了计算角度的正弦、余弦和正切并将其存储在单独的变量中,我们使用了 NumPy 函数。最后,它在一个格式化的字符串中打印计算值以及角度。虽然 Pandas 已包含,但它并未实际用于计算。我们可以说,上述代码在 NumPy 库的帮助下显示了基本三角计算。

重命名属性功能

导入模块后,您可以使用 'as' 为别名提供附加名称。此功能使在代码中引用模块更加容易。另一方面,'as' 使开发人员能够修改导入的函数。例如,您可以从模块中导入特定函数并用所需的较短名称重命名它们

代码

输出

Python 'as' Keyword

说明

上面给出的代码创建了一个正弦图。我们首先导入所有必要的库,例如 NumPy 和 Matplotlib.pyplot。然后,我们定义了两个数组:demoDimension 和 magnitudeDimension。DemoDimension 是从 0 到 350 的值数组,步长为 20。接下来,MagnitudeDimension 是一个正弦值数组,通过 np.sin(2*np.pi*demoDimension*1/350) 公式计算得出。代码使用 matplotlib.pyplot 绘制图形,其中 demoDimension 在 x 轴上,magnitudeDimension 在 y 轴上。图形命名为“Sinusoid”,类似地,x 轴和 y 轴分别标记为“Demo”和“Magnitude”。

异常处理

Python 具有一些通用、独特和全面的解释来处理程序执行期间的错误。工程师或开发人员可以使用 'as' 关键字以不同的名称来命名引发的异常,例如,numpy as np。这个备用名称是对特定错误的引用。此方法允许程序员获取有关代码中发生的错误的详细信息,例如执行类型、错误消息等。

输出

[Errno 2] No such file or directory: 'sample.txt'

说明

上面代码执行读取名为“demo.txt”的文件的内容并打印出来。但是,找不到该文件,因此代码给出了:FileNotFoundError 异常并打印错误消息。

什么是上下文管理器?

在 Python 中,上下文管理器是正确管理和维护内容对象的组成部分。进入代码块时,将调用上下文管理器的 __enter__() 方法,获取必要的资源(例如,打开文件并关闭数据库)。代码块中的代码使用并执行接收到的对象。当代码终止或发生异常后,将调用上下文管理器的 __exit__() 方法,释放接收到的对象(例如,关闭文件或打开数据库)。

特性

  1. 上下文管理器可确保释放资源,从而限制了即使发生异常时的安全漏洞和关键错误。
  2. 该方法使您可以通过删除手动获取和释放的重复代码来简化项目管理。
  3. __exit__() 函数使您能够管理异常,从而最大程度地减少其影响,并提供一种更有效的处理错误的方法。

示例

输出

Text File Contents
here are some content

解释上面的代码

在上面给出的代码中,我们使用 with 语句以读取模式 ('r') 打开“example.txt”。使用 file.read() 将文件的所有内容读入 data 变量。之后,在第一个 Print 语句中有一个错位的 r。此 r 在此处不是合适的参数,我们需要将其删除以获得正确的输出。第二个 Print 语句在不显示任何错误的情况下正确打印结果。

自定义类名

在组织良好且易于理解的代码的背景下,使用合适的类名将是有益的。此实践有助于理解项目。选择清楚描述项目目的的类名很重要。首选描述性名称,因为它们可以最大程度地减少混淆。

自定义方法有助于提高审查代码人员的可读性。您有四种常见的方法来自定义代码,包括 PascalCase、camelCase、Kebab-case 和 snake_case。找到清晰简洁之间的平衡很重要。我们应该忽略冗长的名称,同样重要的是要确保您选择的名称提供了足够的信息。

方法

当我们讨论函数的正确命名时,简单的方法是名称必须准确描述函数或类在系统中的角色。例如,使用一个说明类目的的名称而不是一个通用名称。

该类是一个操作,因此使用反映这些功能的名称可能会有所帮助。例如,如果一个类负责转换数据,请考虑将其命名为 DataTransferer。类似地,如果一个类主要侧重于发送通知,则合适的名称可能是 DataSender。

为类选择适当的描述性名称可以使您的代码更清晰、更易于理解。

输出

My peacock says: Scream
My parrot says: Talk
My peacock is MyPeacock
My parrot is MyParrot

说明

上面代码定义了一个关于鸟类声音的类层次结构。Birds 类作为基类或父类,定义了一个 speak() 方法,该方法引发 NotImplementedError,表明子类必须实现此方法。Peacock 和 Parrot 两个子类分别用它们各自的行为“Scream”和“Talk”覆盖了 speak() 方法。此外,Peacock 和 Parrot 还有子类 MyPeacock 和 MyParrot,它们分别拥有自己的独特方法 unfurls() 和 talks()。之后,创建了这些子类的两个实例 my_peacock 和 my_parrot,并调用了它们的 speak() 方法,同时打印了它们的类型。这段代码描述了继承和方法重写,即展示了子类如何扩展父类的功能。

示例

以下是有关 Python 中 'as' 关键字应用的更多示例

函数别名

输出

72

说明

在上面的代码中,我们创建了一个名为 find_surface 的函数。此函数接受两个输入 height 和 width,并计算这些输入的乘积,表示矩形区域的表面积。之后,代码通过提供参数 8 和 9 来执行 surface 作为函数。

模块级变量别名

输出

The perimeter of a circle including radius 5 is 31.41592653589793

解释上面的代码

在此示例中,我们在上面的代码中创建了一个名为 `radius` 的变量,并为其分配了值 `5`。此代码使用公式 `circumference = 2 * m.pi * radius` 计算圆的周长,其中 `m.pi` 代表常数 pi。

列表推导式中的别名

输出

Squares from 1 to 5: [1, 4, 9, 16, 25]

说明

上面的代码正在使用 NumPy 库运行数值代码。我们创建了一个名为 squares 的集合,它遍历从 1 到 5 的数字,并使用 np.square() 函数计算每个数字的平方。然后它将显示从 1 到 5 的平方集合。

在命名元组中使用 'as'

输出

The x-coordinate is: 3
The y-coordinate is: 4

说明

在上面的程序中,我们定义了一个名为 Point 的命名元组,其字段为 'x' 和 'y',表示坐标。然后创建一个 Point 命名元组的实例 pt,并将值 (3, 4) 分别赋给 'x' 和 'y'。使用序列解包,它将 pt 的值赋给变量 x_coord 和 y_coord。

自定义枚举名称

输出

The color code of Orange is: 5

代码解释

上面提供的代码使用了 enum 模块中的 Enum 类来定义一个名为 Color 的自定义枚举。它为每种颜色分配了整数值,其中 Pink 分配到 2,Orange 分配到 5,Yellow 分配到 4。因此,它使用 Color.Orange.value 访问与 Orange 枚举成员关联的值,并将其赋给变量 clr_code。

Pandas DataFrame 中的别名

输出

     Name  Age
0   Vivek   22
1  Neeraj   23
2  Sachin   23

说明

前面的实例以存储在名为 value 的集合中的信息启动 DataFrame,其中标签是列标题 'Name' 和 'Age',元素是包含相关信息点的数组。'Name' 列包含表示标题的文本,而 'Age' 列包含表示年份的整数。然后,脚本使用 pd.DataFrame() 和集合中的信息来生成 DataFrame。之后,它将显示 DataFrame df,该 DataFrame 以结构化的布局显示带行和列的信息。

重命名导入的类

输出

Model instantiated successfully!

说明

在上面给出的代码中,我们使用了 scikit-learn 库,并从 linear_model 模块导入了 LogisticRegression 类,并将其别名为 lr。之后,我们使用 lr() 构造函数创建了一个名为 model 的 LogisticRegression 类实例。逻辑回归模型算法用于二元分类任务。实例化模型后,代码会打印一条消息,确认模型实例已成功实例化。

结论

Python 程序员可以使用通用的 'as' 关键字作为别名来命名模块或函数。当应用于导入时,它充当一种重命名形式,这不仅提高了代码的可读性,还有助于避免潜在的命名冲突。那天,除了“他”案例中使用的材料外,确保它们得到妥善处理。当用于不同含义时,它能轻松地绑定变量的变化,从而简化复杂的术语。这个关键字是任何 Python 开发者的宝贵工具,因为它简化了代码,提高了清晰度,并简化了功能。