我注意到在Python代码中,通常首选显式导入所需模块的部分,例如
from django.core.urlresolvers import reverse
from django.db import models
Run Code Online (Sandbox Code Playgroud)
但是,我注意到这似乎不是Python标准库模块的情况,我通常会看到,例如:
import os
import sys
something = os.path.join('home', 'ludo')
other = sys.argv('dunno')
Run Code Online (Sandbox Code Playgroud)
代替
from os.path import join
from sys import argv
something = join('home', 'ludo')
other = argv('dunno')
Run Code Online (Sandbox Code Playgroud)
对此有任何推理或记录的约定吗?
关于这个主题,圣洁风格指南相当松散:
从包含类的模块导入类时,通常可以拼写:
Run Code Online (Sandbox Code Playgroud)from myclass import MyClass from foo.bar.yourclass import YourClass如果此拼写导致本地名称冲突,则拼写它们
Run Code Online (Sandbox Code Playgroud)import myclass import foo.bar.yourclass并使用"myclass.MyClass"和"foo.bar.yourclass.YourClass".
对此没有任何"规则",只是如上所述的一些指示.如果您没有受到名字冲突的阻碍,您可以自由地按照自己的意愿行事.
但是,正如链接中所提到的,您应该记住这一点
应避免使用通配符导入(来自import*),因为它们不清楚命名空间中存在哪些名称,使读者和许多自动化工具混淆.
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |