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

如何防止模块两次导入?

微生高谊
2023-03-14
问题内容

编写python模块时,是否有办法防止客户端代码两次将其导入?就像c / c ++头文件一样:

#ifndef XXX
#define XXX
...
#endif

非常感谢!


问题答案:

Python模块不会多次导入。仅运行两次导入将不会重新加载模块。如果要重新加载它,则必须使用该reload语句。这是一个演示

foo.py 是单行的模块

print("I am being imported")

这是多次导入尝试的屏幕记录。

   >>> import foo
   Hello, I am being imported
   >>> import foo # Will not print the statement
   >>> reload(foo) # Will print it again
   Hello, I am being imported


 类似资料:
  • 问题内容: 使用IPython在Python中开发大型项目(分为多个文件和文件夹)时,我遇到了缓存导入模块的麻烦。 问题是,即使模块已更改,指令也只能读取一次模块!因此,每次更改软件包中的内容时,都必须退出并重新启动IPython。痛苦。 有什么方法可以正确地强制重新加载某些模块吗?还是更好地以某种方式阻止Python对其进行缓存? 我尝试了几种方法,但是没有用。特别是我遇到了非常非常奇怪的错误,

  • 问题内容: 据我了解,python模块永远不会导入两次,即该模块中的代码仅在首次导入时才执行。随后的import语句只需将模块添加到导入范围即可。 我有一个名为“ TiledConvC3D.py”的模块,但似乎已多次导入。我使用pdb在该模块的代码顶部打印堆栈。 这是从第一次执行模块开始的堆栈跟踪的结尾: 它将继续执行多次。但是,第二次调用的完整堆栈跟踪不会显示对的任何调用,因此不应执行这些执行:

  • 问题内容: 我有一个ajax电话 现在,这里是10分钟后收到的答复。因此,ajax调用被多次调用。为什么会发生这种情况/我们如何确保ajax调用仅被调用一次? 问题答案: 禁用按钮的另一种方法是使用.one()方法,并在回调后重新绑定事件处理程序:

  • 问题内容: 有没有办法在同一个python会话中两次加载一个模块? 用一个例子填补这个问题:这是一个模块: 模版 现在,我想两次导入该模块,例如创建一个类的两个实例以实际具有的两个副本。 要已经回答评论中的问题,“如果有人只要创建一个带有变量的类,为什么有人会想这样做”: 您是正确的,但是存在大量的源,必须重写,并且两次加载一个模块将是一个快速修复^^。 问题答案: 是的,您可以两次加载一个模块:

  • 问题内容: 我的package.json文件中有此文件(简化版): 我在Mac 10.6.8上使用NPM 1.1.1版本。 当我从项目根目录运行以下命令时,它将同时安装 和 : 我印象中该命令安装了: 我如何做到只安装(这样,生产环境只获取那些模块),而同时安装和呢? 问题答案: 当在开发环境(默认)中的软件包目录中运行时,该命令将与其他命令一起安装。 使用(或) 仅 安装,而不考虑环境变量的值。

  • 小问题:如何使进口证书(pfx)不可出口? 是不支持这种场景还是我们缺少了什么?提前道谢!