[英]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.