如何在Python自定义类中导入外部库

最大点数

我是Python的新手,我正努力在自定义类中导入外部模块/包。我没有找到答案(可能是因为我使用的术语不好),所以我在这里发布。从根本上讲,这是一个涉及Python全局理解的新手问题。

我有以下课程:

class MyCustomClass:
  import openpyxl as xl
  from fuzzywuzzy import fuzz
  from fuzzywuzzy import process
  import time

  def __init__(self, file_path):
    self.file = xl.load_workbook(file_path)

   def some_method(self):
     start = time.time()
     process.extractOne(#calling args)

当我使用此类结构创建实例时,出现了NameError:name'xl'not defined''

使用self.xl和self.time它可以正常工作这是我的问题:

1)在我的课程中导入模块或软件包的好方法是什么?

2)我可以避免使它们成为实例变量吗?

谢谢你的帮助,

在类定义中包含导入将使这些名称可用作类成员:

>>> class Example:
        import time

>>> Example.time
<module 'time' (built-in)>

因此,为了从内部访问这些导入,您必须使用将它们称为类成员MyCustomClass.xl.load_workbook

但总的来说,不建议这样做。这些导入不属于类本身,它们是类的依赖项,但是没有理由将这些依赖项公开为类成员。相反,你应该只导入这些名字以外的类定义的:

import openpyxl as xl
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
import time

class MyCustomClass:
    def __init__(self, file_path):
        self.file = xl.load_workbook(file_path)

    def some_method(self):
        start = time.time()
        process.extractOne(some_args)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章