我有一个带有if语句的脚本LCP_02.py
:
if __name__ == "__testcase__" or __name__ == "__main__":
ask_costsurfacepath_path()
ask_outputpath_path()
CostSurfacefn = config.costsurfacepath
startCoord = (config.startX,config.startY)
stopCoord = (config.stopX,config.stopY)
outputPathfn = config.outputpath
main(CostSurfacefn,outputPathfn,startCoord,stopCoord)
当我在shell中运行testcase.py
(下面)时,它不会运行LCP_02
脚本:
import config
import LCP_02
if __name__ == "__main__":
config.startX = 356254.432
config.startY = 5325191.299
config.stopX = 346200.101
config.stopY = 5301688.499
LCP_02
LCP_02
中的所有函数都有打印语句(视觉上)。但是在运行testcase.py
时,它们不会打印出来。程序启动,等待大约2秒钟,然后在shell中显示>>>
。
答案 0 :(得分:1)
它有两个原因无效:
您导入了LCP_02
,因此该模块中的__name__
值设置为'LCP_02'
,而不是'__main__'
或'__testcase__'
。根据导入模块的内容,名称 never 。
只需在一行上引用LCP_02
即可调用'那个模块;如果保护代码将要运行,那么在导入时它就会。
使用LCP_02
中的函数代替:
def run_test():
ask_costsurfacepath_path()
ask_outputpath_path()
CostSurfacefn = config.costsurfacepath
startCoord = (config.startX,config.startY)
stopCoord = (config.stopX,config.stopY)
outputPathfn = config.outputpath
main(CostSurfacefn,outputPathfn,startCoord,stopCoord)
if __name__ == "__main__":
run_test()
并从testcase.py
模块中调用该函数:
LCP_02.run_test()