【发布时间】:2012-12-16 11:37:34
【问题描述】:
我有一个模块,它定义了一个类,该类从两个(或多个)其他模块之一实例化一个类。下面是几个代码示例。在第一个示例中,导入了两个模块,但只使用了一个(每个 MyIo 实例一个)。在第二个示例中,仅导入所需的模块。在更高级别的模块中可能有一个或多个 MyIo 实例。
我喜欢第二个示例只导入使用的内容,但我不太喜欢 import 发生在“代码执行”部分。
我的问题是:
- 哪些示例是更好的架构选择,为什么?
- 导入最终没有的模块是否会受到惩罚? 用过?
- Python 代码执行部分中的导入是否被认为是“错误的形式”?
此示例导入了两个模块,但只使用了一个...
''' MyIo.py '''
...
...
from DevSerial import Device as DeviceSerial
from DevUSB import Device as DeviceUSB
class MyIo:
def __init__(self, port)
if port.lower() == 'usb':
self.device=DeviceUSB()
else:
self.device=DeviceSerial(port)
...
...
以下仅导入正在使用的模块...
''' MyIo.py '''
...
...
class MyIo:
def __init__(self, port)
if port.lower() == 'usb':
from DevUSB import Device
self.device=Device()
else:
from DevSerial import Device
self.device=Device(port)
...
...
【问题讨论】:
标签: python architecture import module