在 python 中导入非全局的 libraries/packages 时应遵循什么好的做法?
What is a good practice to follow when importing libraries/packages in python when it's not global?
我正在按组合创建对象。所以
class OMX:
def __init__(self):
pass
class PYG:
def __init__(self):
pass
class AudioPlayer:
def __init__(self):
audioController = None
if someCondition:
audioController = OMX()
else:
audioController = PYG()
OMX 需要 import subprocess
,但 PYG 不需要。所以我不想不必要地放置一个全局import subprocess
。所以我正在考虑像这样将导入放在 OMX 的 __init__
中:
class OMX:
def __init__(self):
import subprocess
这在 Python 中是好的做法吗?
PEP 8 有 this to say:
Imports are always put at the top of the file, just after any module comments and docstrings, and before module globals and constants.
更实际的是,您应该考虑到在构造函数中导入某些内容不会自动使其可用于方法。
我正在按组合创建对象。所以
class OMX:
def __init__(self):
pass
class PYG:
def __init__(self):
pass
class AudioPlayer:
def __init__(self):
audioController = None
if someCondition:
audioController = OMX()
else:
audioController = PYG()
OMX 需要 import subprocess
,但 PYG 不需要。所以我不想不必要地放置一个全局import subprocess
。所以我正在考虑像这样将导入放在 OMX 的 __init__
中:
class OMX:
def __init__(self):
import subprocess
这在 Python 中是好的做法吗?
PEP 8 有 this to say:
Imports are always put at the top of the file, just after any module comments and docstrings, and before module globals and constants.
更实际的是,您应该考虑到在构造函数中导入某些内容不会自动使其可用于方法。