在python中, 怎么选择使用"import" 或者"from .. import" 呢
原则就是: 无论使用哪种import方式, 都必须满足
- 只import module, 不import module中的对象
- 让后面的代码可以直接使用不包含package信息的module name.
Bad (没import module, 而是import了module中的server函数)
from eventlet.wsgi import server
server(eventlet.listen(('',8080)), hello_world)
Bad (后面的代码需要使用wsgi这个module的时候, 还需要同时使用package信息“eventlet.wsgi”)
import eventlet.wsgi
eventlet.wsgi.server(eventlet.listen(('',8080)), hello_world)
Good
from eventlet import wsgi
wsgi.server(eventlet.listen(('',8080)), hello_world)
import netaddr
meta_cidr = netaddr.IPNetwork(dhcp.METADATA_DEFAULT_CIDR)
from neutron.agent.common import config
self.root_helper = config.get_root_helper(self.conf)