仅在函数中而不是在文件开头导入模块是否正确?

2024-09-27 07:32:20 发布

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

所以,我有一个棘手的问题,关于import ModuleName,以及我应该把这个操作符放在哪里。在文件开头还是函数开头?你知道吗

import some_module

def main():
    some_module.SomeStuff()

或:

def main():
    import some_module
    some_module.SomeStuff()

但如果我在不止一个函数中使用它呢?这是正确的还是愚蠢的?或者我需要用__init__函数创建类,比如:self.module = some_module.SomeStuff()?然后在类下的其他函数中调用它?你知道吗


Tags: 文件函数importselfinitmaindefsome
3条回答

pep08 recommands that all imports should happen at the beginning of the module,除非你有一个非常有说服力的理由去做其他事情,否则这就是方法。你知道吗

我能想到的唯一原因是两个模块之间的循环依赖(模块a尝试导入模块B,模块B尝试导入模块a等等),但是最好通过分解第三个模块中既不依赖a也不依赖B的公共元素来干净地解决问题

为导入创建一个类不是pythonic,实际上它是不好的。您应该将模块作为名称空间导入以调用该模块中的函数,也可以导入特定函数:

from some_module import SomeFunc1, SomeFunc2
# or
import some_module
some_module.SomeFunc1()

Import语句必须位于源文件的顶部(请看pep8)

正确的方法是文件开头的import modulefrom module import func_a。它看起来会更干净更好。如果您只想导入一个或两个函数,请使用第二个函数。你知道吗

相关问题 更多 >

    热门问题