2011-10-05 90 views
0

我导入函数从包:为什么一个函数被执行两次?

from read_video import getData 

我写了这个功能。它具有以下结构:

def getData() 
    print 'start' 
    ... 
    print 'end' 

然后我调用这个函数:

video_data = getData() 

在我看到的画面;

start 
end 
start 
end 

我以为这可能是我的函数调用自己。但事实并非如此。我也认为我的函数调用一个函数来调用我的函数。但情况并非如此。有人知道可能是这种奇怪行为的原因吗?

+2

这是完整的代码?你调用getData()和getVideo()被称为? – rocksportrocker

+3

你确实意识到人们只能猜测?你提供的代码太少。 – Geo

+0

@rocksportrocker在原始问题中犯了一个错误。它总是'getData'。 – Roman

回答

1

代码修改本:

import pdb 

def getData(): 
    print 'start' 
    pdb.set_trace() 
    ... 

一旦你在解释器的提示下降,按w看到一个呼叫跟踪。这应该可以帮助你解决问题。

0

我得到了我自己的问题的答案。我的代码保存在dimension.py文件中。所以我打电话给python dimension.py。在dimension.py我有以下行:

sys.path.append('C:\\Users\\me\\datamining\\Dimensions\\') 
from dimension import * 

的问题是,包也被称为dimension.py(文件名称相同,但位于另一个目录)的文件中。从dimension.py导入导致该程序在dimension.py(不是包)中的一次额外执行。

相关问题