在 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.

更实际的是,您应该考虑到在构造函数中导入某些内容不会自动使其可用于方法。