当前位置: 首页 > 面试题库 >

在类/函数定义中导入语句-这是一个好主意吗?

公孙巴英
2023-03-14
问题内容

我创建了一个名为的模块util,该模块提供了我在Python中经常使用的类和函数。其中一些需要导入的功能。在类/函数定义中导入所需内容的利弊是什么?它比import模块文件的开头好吗?这是个好主意吗?


问题答案:

每个 导入文件放在文件顶部是最常见的样式。PEP
8推荐使用它,这是开始使用它的一个很好的理由。但这不是一时兴起,它具有优势(尽管不够重要,不足以使其他一切都构成犯罪)。它允许一目了然地找到所有导入,而不是浏览整个文件。它还确保在执行任何其他代码(可能取决于某些导入)之前导入所有内容。NameErrors通常很容易解决,但是可能很烦人。

通过将模块保持在较小的范围内,不会避免(显着)命名空间污染,因为您添加的只是实际的模块(不,import *不计数,并且无论如何也不应使用)。在函数内部,您将在每次调用时再次导入(这并不是很有害,因为所有内容都被导入一次,但是是不需要的)。



 类似资料:
  • 本文向大家介绍Python和多线程。这是个好主意吗?,包括了Python和多线程。这是个好主意吗?的使用技巧和注意事项,需要的朋友参考一下 实际上,这不是一个好主意。 Python不允许多线程,但是如果您想运行需要等待IO之类的程序速度,则它会占用很多时间。由于线程包无法让您使用额外的CPU内核,因此python不支持多线程,因为Cpython解释器上的python不支持通过多线程执行真正的多核。

  • 我需要帮助来找出如何解决活动中两个相互冲突的导入的问题,即: null 取决于哪一个先来。

  • 本文向大家介绍python多线程(multi-threading).这是个好主意吗?相关面试题,主要包含被问及python多线程(multi-threading).这是个好主意吗?时的应答技巧和注意事项,需要的朋友参考一下 python并不支持真正意义上的多线程,python提供了多线程包。python中有一个GIL的东西,能确保代码中只有一个线程在执行,经过GIL处理,如果是CPU密集型,即计算

  • 问题内容: eval函数是一种动态生成代码的强大而简便的方法,那么有哪些警告? 问题答案: 错误使用 eval会 打开代码以进行注入攻击 调试 可能会更具挑战性(没有行号等) 评估的代码执行速度较慢(没有机会编译/缓存评估的代码) 编辑:正如@Jeff Walden在评论中指出的那样,今天#3的真实性要低于2008年。但是,尽管可能会缓存一些已编译脚本,但这只会限于未经修改就重复的脚本。更有可能的

  • 问题内容: 我正在设计一个大型数据库。在我的应用程序中,我将有很多行,例如,我目前有一个包含400万条记录的表。我的大多数查询都使用datetime子句来选择数据。索引mysql数据库中的datetime字段是一个好主意吗? 我正在努力保持数据库正常运行,并且查询运行平稳 此外,您认为创建高效数据库应该有什么主意? 问题答案: MySQL建议出于各种原因使用索引,包括消除条件之间的行:http :

  • 问题内容: 我最近在查看Python 3.3语法规范时发现了一些有趣的东西: 在Python 2中缺少可选的“箭头”块,并且在Python 3中找不到有关其含义的任何信息。事实证明这是正确的Python,并已被解释器接受: 我认为这可能是某种前提语法,但是: 我无法x在此处进行测试,因为它仍未定义, 无论我在箭头(例如2 < 1)后面加上什么,它都不会影响功能行为。 熟悉此语法的任何人都可以解释吗