from adsl import *
比如这个,为什么要这样写?直接import adsl不就行了
1
ladrift 2015-05-12 15:38:38 +08:00 via Android 2
import adsl
模块中的名字全部是adsl这个名字下的 比如调用adsl中的foo函数(举个栗子): adsl.foo() 而from adsl import * 可以用 foo() 直接调用foo函数 |
2
tanteng OP |
3
monsabre1 2015-05-12 15:48:29 +08:00
from adsl import *
这种不好 |
4
ladrift 2015-05-12 15:49:19 +08:00 via Android 1
|
7
washinriver 2015-05-12 17:02:07 +08:00
一般写成 from adsl import func1,func2
方便,清楚. |
8
binux 2015-05-12 17:03:15 +08:00 2
我知道我为什么写不出博客了。。
|
10
MrEggNoodle 2015-05-12 17:42:05 +08:00
@binux 哈哈哈。总觉得你这句话很幽默。
|
12
lcqtdwj 2015-05-12 21:50:21 +08:00
产品一般不会 from XXX import *,因为会污染命名空间,locals()看一下,如果有相同名字可能就冲突了。一般在ipyhton里图省事这样写。
|
14
fatpa 2015-05-12 22:36:38 +08:00
可怕!
|
15
mingyun 2015-05-12 22:37:46 +08:00
污染命名空间
|
16
beibeijia 2015-05-12 22:47:18 +08:00
一般这么用也就是图个方便 特别是学习和测试的时候 比如pyqt from PyQt4.QtGui import * 这样调用的时候 直接QWidget() QPushButton() 否则 PyQt4.QtGui.QWidget() PyQt4.QtGui.QPushbutton() 每次这么写太麻烦了 不过正式写程序搞项目的时候这种写法还是应该少用 就像楼上说的会污染命名空间 像这样导入三个以上的模块 如果其中有命名发生重叠 你调用的方法或者变量就有可能不是你想要的 最终有可能导致程序崩溃或者不按照你想要的方式执行 关于这方面卤煮可以去看看《python学习手册》这里对核心知识的一些细节讲的还是比较到位的。
|