Python 中的模块有标准别名吗?

2023-11-21

遵循中提出的指南这个帖子,我正在改变所有

from module import function
function(agt)

by:

import module as mdl
mdl.function(agt)

在我的代码中。我尝试使用常用的别名而不是个人别名。互联网上是否有某种列表总结了所有常用别名?

例如,这些似乎很常见:

import numpy as np
import math as m
import matplotlib.pyplot as plt

别名怎么样scipy.linalg, time, scipy.io, cmath等等 ?你用哪个?请随意提供其他别名,如果尚不存在这样的列表,我愿意提出一个(我将更新这篇文章)。


不,没有模块缩写词的完整列表

没有规范的列表,我不建议在这里制作一个(所以在我看来,这并不是真正适合的地方)。样式指南,包括命名约定,在 PEP8 中为 python 定义,有关导入的部分是here。好的和有用的建议,但不是导入别名的枚举列表。

关于命名有很多好的规则和建议,其中一些也适用于导入的名称。这个帖子例如,我认为,可以让我们了解“数学绘图库”到“mpl”的不那么令人惊讶的词源。继模块名称上的 PEP8可以帮助我们根本不需要缩写词。

Note that you've mixed built-in modules ("time") with standard but third-party libraries ("numpy", which is ubiquitous but Guido declined in 2006 to add to the core and must be installed separately) and general third-party libraries ("matplotlib")6. You might find a list for built-in and extremely common libraries (or an indirect one through tutorials), but third-party libraries being included seems far less likely; I would advise letting the authors of packages decide their standard abbreviations. Numpy is a good example of a library who's authors use "np" in their own tutorials and have "standardized" their libraries usage syntax.

FWIW,我不喜欢称数学为“m”(或者正如一位评论者建议的那样,“os as o”);对于像我这样笨拙的程序员来说,单名变量是一场灾难......


我还想向您指出首先包含“as”语法的理由,这通过消除可能的名称冲突来证明它的合理性(如果您导入cos from scipy和来自sympy,你可能会过得很糟糕)。使用它来缩写已经遵守 PEP 命名标准的名称(首先是简短易读),听起来即使方便,也不应该得到正式认可。

在一个有趣的例子中:here, sympy and scipy两人都尝试在短时间内使用相同的缩写,导致了我们希望避免的问题(虽然scipy现在建议完全不要使用缩写词,显然)


脚注

  1. 谷歌也有一个风格指南;他们建议 using import...as“仅当[它]是标准缩写时(例如,np for numpy)”。抱歉,他们也推迟了:)
  2. 不是吹毛求疵,但你的问题是“我正在改变all... [导入语句]”(强调我的)。需要明确的是,您链接的问题说“那么,在一个或另一个之间进行选择,应该基于编码风格。”有时导入函数或在我看来,直接类是完全明确的。例如,sklearn教程包含“GaussianProcessRegressor”导入的示例不需要执行任何命名空间或缩写。只有您可以知道您的应用程序,但在大多数情况下可以安全地假设该名称足够唯一
  3. 这个也可以用作为版本控制黑客。我有时会这样使用它,但我不确定如何推荐该策略
  4. 有些人了解会话技术使用“别名”一词
  5. Reddit 也没有列表
  6. 为了澄清评论中的问题,“第三方但标准”和“第三方”之间的界限非常非正式,并不意味着神圣
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的模块有标准别名吗? 的相关文章

  • str.translate 与 str.replace - 何时使用哪一个?

    何时以及为什么使用前者而不是后者 反之亦然 目前尚不完全清楚为什么有些人使用前者以及为什么有些人使用后者 它们有不同的目的 translate只能用任意字符串替换单个字符 但一次调用可以执行多次替换 它的参数是一个特殊的表 它将单个字符映射
  • 键入的完整命令行

    我想获得输入时的完整命令行 This join sys argv 在这里不起作用 删除双引号 另外 我不想重新加入已解析和拆分的内容 有任何想法吗 你太迟了 当键入的命令到达 Python 时 您的 shell 已经发挥了它的魔力 例如 引
  • 无法在 virtualenv 中安装 libxml2

    我有一个问题libxml2蟒蛇模块 我正在尝试将其安装在python3 虚拟环境使用以下命令 pip install libxml2 python3 但它显示以下错误 Collecting libxml2 python3 Using cac
  • django 模板 - 如何动态访问变量?

    假设我有一个具有以下上下文的 django 模板 data1 this is data1 data2 this is data2 data name data2 现在我知道了data name 假设它是 data2 是否可以用它来访问变量d
  • Python - Unicode 到 ASCII 的转换

    我无法在不丢失数据的情况下将以下 Unicode 转换为 ASCII u ABRA xc3O JOS xc9 I tried encode and decode他们不会这么做 有人有建议吗 Unicode 字符u xce0 and u xc
  • 设置高亮大括号的 vim 颜色主题

    如何更改突出显示大括号的 vim 配色方案 我希望实际编辑 vim 主题文件以使更改永久生效 问候 克雷格 匹配括号的自动高亮颜色称为MatchParen 您可以通过执行以下操作来更改 vimrc 中的颜色 highlight MatchP
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • 在请求中设置端口

    我正在尝试利用cgminer使用 Python 的 API 我对利用requests图书馆 我了解如何做基本的事情requests but cgminer想要更具体一点 我想缩小 import socket import json sock
  • 通过 Python 循环浏览网络上的目录并显示其内容(文件和其他目录)

    同样的道理在Python中处理从源目录到目标目录的一组文件 https stackoverflow com questions 2593399 process a set of files from a source directory t
  • Python:在字典中查找具有唯一值的键?

    我收到一个字典作为输入 并且想要返回一个键列表 其中字典值在该字典的范围内是唯一的 我将用一个例子来澄清 假设我的输入是字典 a 构造如下 a dict a cat 1 a fish 1 a dog 2 lt unique a bat 3
  • Django 2、python 3.4 无法解码 urlsafe_base64_decode(uidb64)

    我正在尝试通过电子邮件激活用户 电子邮件有效 编码有效 我使用了 django1 11 中的方法 该方法运行成功 在 Django 1 11 中 以下内容成功解码为 28 其中 uidb64 b Mjg force text urlsafe
  • 如何展平解析树并存储在字符串中以进行进一步的字符串操作 python nltk

    我正在尝试从树结构中获取扁平树 如下所示 我想将整个树放在一个字符串中 就像没有检测到坏树错误一样 S NP SBJ NP DT The JJ high JJ seven day PP IN of NP DT the CD 400 NNS
  • 如何创建用于霍夫曼编码和解码的树?

    对于我的作业 我将对霍夫曼树进行编码和解码 我在创建树时遇到问题 并且陷入困境 不要介意打印语句 它们只是让我测试并查看函数运行时的输出是什么 对于第一个 for 循环 我从主块中用于测试的文本文件中获取了所有值和索引 在第二个 for 循
  • python中有没有一种方法可以将存储在列表中的正则表达式模式列表应用到单个字符串?

    我有一个正则表达式模式列表 存储在列表类型中 我想将其应用于字符串 有谁知道一个好方法 将列表中的每个正则表达式模式应用于字符串 和 如果匹配 则调用与列表中该模式关联的不同函数 如果可能的话我想用 python 来做这件事 提前致谢 im
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • 如何使用 Python/Django 在 Facebook 中获取(和使用)扩展权限

    我正在尝试编写一个简单的应用程序 让用户授予我的代码写入其页面的 Facebook 流的权限 据我了解 它应该很简单 让用户单击一个按钮 启动一个弹出窗口 其中包含我的 Facebook 应用程序中的页面 在该页面中 他们单击授予的内容流发
  • MoviePY 无法在 Windows 上检测 ImageMagick 二进制文件

    我刚买了一台新笔记本电脑 想要设置MoviePY在那新的Windows 64x Python3 7 0 机器 我对所有内容都进行了三次检查 但是当涉及到我的代码的文本部分时 它向我抛出了这个错误 OSError MoviePy Error
  • 如何同时接受int和float类型的输入?

    我正在制作一个货币转换器 如何让 python 同时接受整数和浮点数 我就是这样做的 def aud brl amount From to ER 0 42108 if amount int if From strip aud and to
  • 基于值的 matplotlib 条形图颜色

    有没有一种方法可以根据条形图的值对条形图的条形进行着色 例如 values below 0 5 red values between 0 5 to 0 green values between 0 to 08 blue etc 我找到了一些
  • 在Python中停止ThreadPool中的进程

    我一直在尝试为控制某些硬件的库编写一个交互式包装器 用于 ipython 有些调用对 IO 的影响很大 因此并行执行任务是有意义的 使用 ThreadPool 几乎 效果很好 from multiprocessing pool import

随机推荐

  • 记录类型的前向声明

    有没有像标题那样的东西 我正在尝试在转换过程中执行此操作API 结构 并遇到了一些我以前没有遇到过的事情 PFNReaderTranslatedDispatch function var msg TMsg BOOL stdcall PFNR
  • Google 应用引擎实体组

    据我从应用程序引擎教程中了解到 实体组仅出于事务目的而存在 仅在事务需要时才使用实体组 来自教程 位于同一实体组中的定义是具有相同的根 那么 具有超过 1 个层次结构级别有什么用呢 也就是说 为什么我要用 A gt B gt C A是根 B
  • 检查数组中的所有布尔值是否都为 true?

    假设我有这个布尔数组 bool something 4 false false false false 现在 有没有简单的方法可以检查该数组中的所有值是否同时为真 假 而不是这样做 if something 0 false somethin
  • 我必须删除它吗? [Qt]

    在下面的示例中 我是否必须从堆中删除对象 如果是 怎么办 include
  • 我如何准备要发布的 Jetpack compose 应用程序,@Preview 可组合项怎么样?

    我的 Jetpack compose 应用程序的源代码加载了 Preview 可组合项 我通过从源代码中删除所有这些 Preview 可组合项来准备发布我的应用程序 就像我们所做的那样 例如 使用日志方法 有什么办法可以自动化这个删除过程吗
  • 使用浏览器作为桌面 UI

    如何使用浏览器作为桌面应用程序的 UI 到目前为止我想出的方法是 使用所有 HTML Javascript 问题 无法访问文件系统或其他任何内容 在使用应用程序时运行本地网络服务器 问题 用户完成后如何杀死它 我的用户的技术水平不足以使用
  • 通过 .net 会员提供商进行编程登录

    我正在尝试对一段需要当前登录用户进行测试的代码进行单元测试 使用 Net 2 0 Membership Provider 我如何以编程方式作为用户登录以进行此测试 if Membership ValidateUser user1 P ssw
  • 更改 jQuery Mobile 的默认数据主题

    通过 jQuery Mobile 我可以使用自定义主题创建页面 div 现在这可以工作 但要求我在每个页面中以及每次添加新页面时添加此行 我尝试添加data theme s 到 body 标签 但这没有影响 除了每页手动设置之外 还有什么方
  • 确定 matplotlib 轴大小(以像素为单位)

    给定一组axes在 matplotlib 中 有没有办法确定其大小 以像素为单位 我需要根据调整更大或更小的数字来缩放事物 特别是我想更改线宽 使其与轴尺寸成比例 这给出了以英寸为单位的宽度和高度 bbox ax get window ex
  • 如何从对象数组列表中找到最大元素?

    Collections max arraylist 不起作用 并且常规for循环也不起作用 我所拥有的是 ArrayList
  • 保护我的代码免遭逆向工程

    正如类似问题中所讨论的here and here我想保护我的代码免受逆向工程的影响 我的情况是这样的Simucal在他的 优秀 答案中描述here 基本上 归结为 你唯一的机会是 源盗窃的目标是如果您 有一些非常具体 难以 工程师 与您相关
  • set 和 get 方法与公共变量的优点[重复]

    这个问题在这里已经有答案了 可能的重复 为什么要使用 getter 和 setter 在类中创建方法来访问私有变量而不是使变量成为公共变量有什么好处吗 例如 第二种情况比第一种情况更好吗 Case 1 public class Shoe p
  • Rails:HABTM - 查找所有没有关联的记录

    我有 2 个模型 锻炼 设备 它们属于多个关系 如果我使用Workout find all joins gt equipment conditions gt equipment id 5 它有效 但如果我使用Workout find all
  • 根据高度保持div长宽比

    我需要维护width元素占其元素的百分比height 因此 随着高度的变化 宽度也会更新 相反 可以通过使用 padding top 的 值来实现 但 padding left 作为百分比将是对象宽度的百分比 而不是其高度 因此 使用这样的
  • 高效附加到可变长度字符串容器(Golang)

    问题 我需要将多个正则表达式应用于大日志文件的每一行 例如几GB长 收集非空匹配并将它们全部放入一个数组中 用于序列化并通过网络发送 如果回答以下问题 切片没有多大帮助这个问题 holds 如果切片没有足够的容量 append 将需要分配新
  • 在 SQL Server 查询中将 NULL 替换为 0

    我开发了一个查询 在前三列的结果中我得到NULL 我怎样才能替换它0 Select c rundate sum case when c runstatus Succeeded then 1 end as Succeeded sum case
  • Java SSL:如何禁用主机名验证

    标准 java SSL 套接字是否可以通过属性禁用 ssl 连接的主机名验证 到目前为止我发现的唯一方法是编写一个始终返回 true 的主机名验证器 Weblogic 提供了这种可能性 可以使用以下属性禁用主机名验证 Dweblogic s
  • 仅允许使用“sudo su - user”的 Capistrano

    我正在尝试对远程服务器进行简单的 Rails Capistrano 部署 不幸的是我无法得到sudo开箱即可正确运行 我需要在这里部署 drwxr xr x 2 user www 4096 Sep 28 15 05 my app dir 并
  • 空闲 PostgreSQL 连接是否有超时?

    1 S postgres 5038 876 0 80 0 11962 sk wai 09 57 00 00 00 postgres postgres my app 1 45035 idle 1 S postgres 9796 876 0 8
  • Python 中的模块有标准别名吗?

    遵循中提出的指南这个帖子 我正在改变所有 from module import function function agt by import module as mdl mdl function agt 在我的代码中 我尝试使用常用的别名