目前,我正在研究Python项目,但我不知道通过类导入标准库的最佳实践是什么。
例如,我有class A
和class B
:
import math
import os
class A:
def x()
在class B
中,我需要导入class A
方法和math
。我应该如何
import math
from A import x
class B:
x()
math.pow(1, 2)
或
from A import *
class B:
x()
math.pow(1, 2)
为避免再次导入math
。
该项目是用第二个版本编写的,我认为阅读起来确实很痛苦,因为我不知道从何而来。
答案 0 :(得分:0)
您应始终避免使用
from math import *
特别是如果您将仅使用模块中的方法或类。使用*导入所有可用的函数,变量和类,这会使您的应用程序更重,更慢。仅当您确实要使用每个子模块,或者您非常确定自己在做什么时,才使用此选项。使用时
from math import sqrt
您正在向Python确切地说要使用什么,还可以提高代码的可读性。当模块使用的类别/功能不超过3个时,建议使用此功能。现在,当您使用
import subprocess
您正在向应用程序添加依赖项,但是Python仅在找到类似用法时才会加载必要的子模块
subprocess.call(...
假装使用模块的许多子模块时,应使用此功能。