簡體   English   中英

在 Python3 中為實例的所有方法導入模塊

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM