[英]Importing a module for all methods of an instance in Python3
在 Python3 class 中导入模块时遇到问题:
我正在 class 的__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
如果有人可以帮助我,我会很高兴:)
我不知道在 python 中是否可以将模块保存在变量中。 我尝试在 class 级别声明导入,但代码不起作用。
我 python 和 function 是第一公民,所以我们可以将 function 保存在一个变量中。 当您在__init__()
中时,您应该将所需的 function 保存在变量中:
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 模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.