[英]Module Importing Good Practice
导入模块的“良好做法”是什么? 例如,如果我有一个名为“module”的模块和一个名为“func”的 function,哪个更可取?
1:
def do_things():
from module import func
func()
2:
from module import func
def do_things():
func()
3:
import module as mod
def do_things():
mod.func()
4:
def do_things():
import module as mod
mod.func()
我需要确保我的代码为这个项目编写得很好。 同样从模块中导入类(例如“from bs4 import BeautifulSoup”)是否可以将它们导入我程序顶部的全局命名空间? 如果不是,是否适用与此处相同的规则?
对我来说,我更喜欢#3,我的理由是:
from module import func
不同,您可以在该模块中使用任何 function 而无需显式导入它。from module import func1, func2, fun3
你可以import module as mod
然后mod.func1()
。 对于导入单个 class,如果这是您对该模块执行的唯一操作,我会发现没问题,但我的第 1 点可以适用于此,如果该模块还具有辅助函数和/或其他类,则导入可能会更好然后模块执行module.Class()
。
在寻找最佳实践时,PEP8 通常是第一个寻找的地方。 根据PEP8,它是#2: https://www.python.org/dev/peps/pep-0008/#imports
我也喜欢#3,但仅在某些情况下:
import numpy as np
)import a_ridiculously_long_module_name as short_name
或import module.submodule.subsubmodule as short_name
module.submodule.subsubmodule as short_name )对未知包使用别名的危险在于,缩写可能对您有意义,但对其他人没有意义。 这可能会妨碍代码的可读性。
您还可以组合别名和绝对导入。 所以选项5是:
from module import function as func
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.