我刚刚制作了一份eclipse的新副本并安装了pydev。
在我的第一次使用pydev和eclipse的试验中,我在src包下创建了2个模块(默认的一个)
FirstModule.py:
'''
Created on 18.06.2009
@author: Lars Vogel
'''
def add(a,b):
return a+b
def addFixedValue(a):
y = 5
return y +a
print "123"
run.py:
'''
Created on Jun 20, 2011
@author: Raymond.Yeung
'''
from FirstModule import add
print add(1,2)
print "Helloword"
当我拉出运行按钮的下拉菜单,然后单击“ProjectName run.py”时,结果如下:
123
3
Helloword
显然两个模块都运行了,为什么?这是默认设置吗?
答案 0 :(得分:10)
导入模块时,其中的所有内容都是“运行”。这意味着创建了类和函数对象,设置了全局变量,并执行了print语句。 *)
通常的做法是将语句仅用于在if-block中直接运行模块时执行的语句,如下所示:
if __name__ == "__main__":
print "123"
现在,如果您将模块作为脚本运行,则__name__
设置为"__main__"
,因此将打印"123"
。但是,如果您从其他地方导入模块,__name__
在您的情况下将为"FirstModule"
,而不是"__main__"
,因此块中的任何内容都不会被执行。
*)请注意,如果再次导入同一模块,则不再“再次”运行。 Python会跟踪导入的模块,并且第二次重新使用已导入的模块。这使得C / C ++技巧就像用IFNDEF
语句封装头文件体一样,以确保只在python中不需要导入头文件。