从导入同时保留按模块的访问权限

2023-12-01

标题有点难以理解,但我的问题很简单。

我有一个程序需要采取sqrt()某事,但这是我唯一需要的math。为了获取单个功能而导入整个模块似乎有点浪费。

我可以说from math import sqrt, 但是之后sqrt()将被添加到我的程序的主命名空间中,但我不希望这样(特别是因为我计划将程序更改为可用作模块;在这种情况下导入会导致问题吗?)。有没有办法只导入该一个函数,同时仍然保留math.sqrt() syntax?

在这种特定情况下,我使用的是 Python 2.7,但如果 Python 3 有不同的答案,我也想听听以供将来参考。


无论哪种方式,您“导入”完整的math模块在某种意义上是编译并存储在sys.modules。因此,如果这样做,您将不会获得任何优化优势from math import sqrt相比import math。他们做同样的事情。他们进口整个math模块,存储它sys.modules然后唯一的区别是第一个带来了sqrt函数进入你的命名空间,第二个带来math模块到您的命名空间中。但这些名称只是引用,因此仅从模块导入一项内容不会使您在内存或 CPU 方面受益。

如果你想要math.sqrt语法然后使用import math。如果你想要sqrt()语法然后使用from math import sqrt.

如果您关心的是保护模块的用户在执行星号导入时不污染其名称空间:from your_module import *然后定义一个__all__模块中的变量,它是表示当模块的用户执行开始导入时将导入的对象的字符串列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从导入同时保留按模块的访问权限 的相关文章

  • 如何打印前面有一定数量空格的整数?

    C has printf Xd Y 它只打印整数 X 并使其在控制台窗口上占据 Y 空格 例如 printf 3d 10 console 10 printf 5d 5 console 5 我如何在 python 3 中使用它 This pr
  • 在 SQLAlchemy 中,过滤器是在连接之前还是之后应用?

    使用 SQLAlchemy 我执行如下查询 import models as m import sqlalchemy as sa s session maker q s query m ShareCount m Article join m
  • 有什么好的适用于 Google App Engine 应用程序的 AJAX 框架吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的 Google App Engine 应用程序中实现 AJAX 因此我正在寻找一个好的
  • 使用ideone时如何传入命令行参数?

    我正在使用 ideone 在线解释器 http ideone com http ideone com 来测试一些 C 和 Python 程序 如何指定命令行参数而不是使用 STDIN 输入 看起来你不能 但是快速破解应该做的伎俩 stati
  • caffe安装:opencv libpng16.so.16链接问题

    我正在尝试在 Ubuntu 14 04 机器上使用 python 接口编译 caffe 我已经安装了 Anaconda 和 opencvconda install opencv 我还安装了咖啡中规定的所有要求 并更改了注释块makefile
  • 在Python中将大文件(25k条目)加载到dict中很慢?

    我有一个大约有 25000 行的文件 它是 s19 格式的文件 每行就像 S214780010 00802000000010000000000A508CC78C 像这样的事情怎么样 我做了一个测试文件 只有一行S21478001000802
  • 删除 tkinter 文本默认绑定

    我正在制作一个简单的 tkinter 文本编辑器 但我想要所有默认绑定文本小部件如果可能的话删除 例如当我按Ctrl i它默认插入一个制表符 我制作了一个事件绑定来打印文本框中有多少行 我将事件绑定设置为Ctrl i以及 当我运行它时 它会
  • 在 python 中发送标头[重复]

    这个问题在这里已经有答案了 我有以下 python 脚本 我想发送 假 标头信息 以便我的应用程序就像 Firefox 一样运行 我怎么能这么做呢 import urllib urllib2 cookielib username passw
  • 如何在plotly(python)中的刻度标签和图形之间添加空格?

    如果我使用绘图创建水平条形图 则每个条形的标签都与图表相对应 我想在标签和图表之间添加一些空间 填充 边距 我怎样才能做到这一点 Example import plotly offline as py import plotly graph
  • 对法语文本进行词形还原[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一些法语文本需要以某种方式进行处理 为此 我需要 首先 将文本标记为单词 然后对这些单词进行词形还原以避免多次处理相同的词根 据我
  • matplotlib:渲染到缓冲区/访问像素数据

    我想使用 matplotlib 生成的图作为 OpenGL 中的纹理 到目前为止 我遇到的 matplotlib 的 OpenGL 后端要么不成熟 要么已经停止使用 所以我想避免使用它们 我当前的方法是将图形保存到临时 png 文件中 并从
  • 如何在Python中手动对数字列表进行排序?

    规格 Ubuntu 13 04 Python 3 3 1 背景 Python的初学者 遇到了这个 手动排序 问题 我被要求做的事情 让用户输入 3 个数值并将它们存储在 3 个不同的变量中 不使用列表或排序算法 手动将这 3 个数字从小到大
  • 右键单击 QPushButton 上的 contextMenu

    对于我的应用程序 我在 Qt Designer 中创建了一个 GUI 并将其转换为 python 2 6 代码 关于一些QPushButton 与设计器创建 我想添加右键单击上下文菜单 菜单选项取决于应用程序状态 如何实现这样的上下文菜单
  • Django 1.7:如何使用 html/css 文件作为模板发送电子邮件

    从 Django 1 7 开始 可以send email 使用新参数 html message 不幸的是 没有关于如何使用它的全面指南 新手友好 或者至少我找不到它 我需要使发送的电子邮件变得漂亮 因此 我试图弄清楚如何将我的消息包含到 h
  • Python GTK3 Treeview 向上或向下移动选择

    如何在树视图中向上或向下移动所选内容 我的想法是 我可以使用向上和向下按钮将选择向上移动一行或向下移动一行 我的 Treeview 使用 ListStore 不确定这是否重要 首先 我将使用我熟悉的 C 代码 如果您在将其翻译为 Pytho
  • 在Python中随机交错2个数组

    假设我有两个数组 a 1 2 3 4 b 5 6 7 8 9 我想将这两个数组交错为变量 c 注意 a 和 b 不一定具有相同的长度 但我不希望它们以确定性的方式交错 简而言之 仅仅压缩这两个数组是不够的 我不想要 c 1 5 2 6 3
  • 如何将Python包从旧版本安装到新版本?

    我正在使用 python 3 7 最近在 Linux 中安装了 python 3 8 是否有任何 bash 命令或脚本可以获取 3 7 的所有软件包列表并在 3 8 版本中一一安装 我想避免每个包裹都手工完成 注意 我将它们安装在我的系统中
  • Django 中使用外键的抽象基类继承

    我正在尝试在 Django 支持的网站上进行模型继承 以遵守 DRY 我的目标是使用一个名为 BasicCompany 的抽象基类来为三个子类提供通用信息 Butcher Baker CandlestickMaker 它们位于各自的应用程序
  • 在Python中使用os.makedirs创建目录时出现权限问题

    我只是想处理上传的文件并将其写入工作目录中 该目录的名称是系统时间戳 问题是我想以完全权限创建该目录 777 但我不能 使用以下代码创建的目录755权限 def handle uploaded file upfile cTimeStamp
  • 如何使 Django 自定义管理命令参数不再需要?

    我正在尝试在 django 中编写自定义管理命令 如下所示 class Command BaseCommand def add arguments self parser parser add argument delay type int

随机推荐

  • Django Rest Framework 递归嵌套父序列化

    我有一个模型 其中有一个名为 parent 的自引用字段 模型 class Zone BaseModel name models CharField max length 200 parent models ForeignKey self
  • 删除除...(*.BAT)之外的所有文件夹

    我想删除父目录中除 MYFOLDER 之外的所有文件夹 但我无法完成此操作 for i in C Parent do if not i MYFOLDER del f q i 有人可以检查一下代码吗 我使用的是 bat 这应该可以帮助您 fo
  • 如何在使用 HttpClient 获取时阻止 DNS 查找

    我不确定我做得是否正确 下面的方法可以防止DNS lookup when keep alive设置为假 主持人是 tatoeba org 网址是 http 188 213 24 161 eng sentences show 1 这里截图 u
  • 在node.js中的同一端口上绑定HTTP和HTTPS流量?

    我有一个场景 我的 node js 应用程序位于负载平衡 HAProxy 后面 该代理将 HTTP 和 HTTPS 流量转发到我的节点服务器上的端口 8000 不幸的是 这让我陷入了一个棘手的境地 我需要为我的 http 和 https 服
  • 固定宽度字段的正则表达式

    我需要将文件布局上的固定宽度字段与正则表达式进行匹配 该字段是数字 整数 始终有四个字符 并且包含在 0 1331 范围内 当数字小于 1000 时 字符串将用左零填充 所以所有这些例子都是有效的 0000 0001 0010 1000 1
  • 为什么是“使用命名空间 X;”不允许在类/结构级别?

    class C using namespace std error namespace N using namespace std ok int main using namespace std ok 我想知道其背后的动机 我不太清楚 但我
  • 小部件问题:BroadcastQueue:不允许后台执行:接收 Intent

    我的应用程序小部件在升级到 targetSDk 到 28 后停止工作 它可以在旧的 Targetsdk 设备上完美运行 我收到以下错误 W BroadcastQueue Background execution not allowed re
  • 重复结果

    我正在 SQL Server2005 中编写一个查询 这在结果中返回了重复的行 我可以用特定列作为键来消除这种重复吗 您可以使用 DISTINCT 关键字消除完全重复的行 如果有一些键列是重复的 但其余列不是 那么您将必须使用聚合函数和 G
  • playJoin 未定义、输入意外结束以及文件未正确导入

    我有一个非常简单的 JavaScript 函数 可以循环播放音频文件夹中的一些歌曲 然而 下面的代码会产生 Uncaught ReferenceError playJoin is not defined 即使它应该被定义为一个函数 我通过验
  • 我想为可滚动面板设置限制滚动

    我制作了一个可滚动面板 如下所示 private void button3 Click object sender EventArgs e Form f2 new Form f2 Size new Size 400 300 f2 AutoS
  • 具有动态生成的输入字段的 Angular 指令无法显示验证

    经过 3 天的搜索 stackoverflow 和其他网站后 我发现自己又回到了原点 我的任务 我需要验证动态生成的表单字段 HTML
  • 使浮动的 QDockWidget 无法获得焦点

    我正在 QDockWidget 中创建一个简单的虚拟键盘 当小部件停靠到 QMainWindow 中时 所选小部件 例如 qdoublespinbox 会突出显示 如果我单击虚拟键盘 clearFocus 就会起作用 当 QDockWidg
  • 传递给 Array.prototype.every 的函数中的“可变变量可从闭包访问”

    代码会比我说的更清楚 var candidateIndex 0 var minValue Number MAX VALUE topArray every function element index if element innerArra
  • 如何在 NSOperation 中启动异步 NSURLConnection?

    我想在后台线程上的 NSOperation 内部执行异步 NSURLConnection 这是因为当数据返回时我正在对数据进行一些非常昂贵的操作 这与他们在这里提出的问题非常相似 如何在 NSOperation 中执行异步 NSURLCon
  • 无法将 git 与 aptana 一起使用

    当我尝试将某些内容放在 git 服务器上时 它给了我一个错误 引用未定义的变量 USER 在 bash 中 echo USER 给了我正确的答案 会是什么呢 这是带有 aptana 3 插件的 eclipse 一整包 bash 会话可能设置
  • 如何在android本机代码中使用共享内存?

    我正在将现有的 Linux 应用程序移植到 Android 该应用程序正在使用共享内存 API 例如shm open etc 检查android 源码中的仿生 我发现这些 API 不受支持 因此 我在构建过程中遇到链接错误 external
  • 类的全局实例

    仍在尝试了解 C 主要使用 C 我有一个 Device 类 并且想要创建该类的实例 但也希望全局访问这些实例 因为我在 GUI 方法中经常使用它们 public class Device public string Name public
  • 在 for 循环中使用 PdfStamper 的最佳方法

    我有以下iText代码读取文件并将其添加到主 PDF 文件中 因此它基本上是在现有 PDF 的绝对位置添加 PDF 页面 主 PDF 中的绝对位置和页码将动态确定 有时它可能位于第 1 页100 100 x y 或第 2 页250 250
  • Java重载规则

    我最近遇到了两个重载问题 我找不到答案 并且没有 java 环境来运行一些测试代码 我希望有人可以帮助我整理 java 编译器在重载时遵循的所有规则的列表 或者交替地向我指出一个已经存在的列表 首先 当两个方法仅因最终 varargs 参数
  • 从导入同时保留按模块的访问权限

    标题有点难以理解 但我的问题很简单 我有一个程序需要采取sqrt 某事 但这是我唯一需要的math 为了获取单个功能而导入整个模块似乎有点浪费 我可以说from math import sqrt 但是之后sqrt 将被添加到我的程序的主命名