在Python3中为实例的所有方法导入模块

2024-04-19 22:09:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python3类中导入模块时遇到问题:

我正在类的__init__方法中导入一个模块。它在这种方法中运行良好,但是有没有办法在另一种方法中再次使用此模块?我试图将模块保存到self.变量中,但仍然无法工作

当然,我可以在方法中再次导入它,但我更愿意为我的所有方法导入模块,因为它们中的大多数都需要它

我将在下面给出一些示例代码:

class Example(object)

   def __init__(self):

      import moduleName as module

      module.function() # works perfectly

      # Trying to save module for the whole instance:
      self.module = module

   def method(self):

      module.function() # Does not recognize module
      self.module.function() # Does not recognize attribute either

如果有人能帮我,我会很高兴:)


1条回答
网友
1楼 · 发布于 2024-04-19 22:09:24

我不知道在python中是否可以将模块保存在变量中。我试图在类级别声明导入,但代码不起作用

我认为函数是第一公民,所以我们可以将函数保存在变量中。在__init__()中时,应将所需函数保存在变量中:

import module as mod 
mod.function()
self.function = mod.function

过了一会儿

您可以手动加载模块,但为此您必须导入模块importlib。代码如下:

import importlib

class MyClass:
    def __init__(self):
        self.module = importlib.import_module("module") 
        self.module.function()

    def func(self):
        self.module.function()

c = MyClass()
c.func()

还有imp模块

相关问题 更多 >