我还有一段这样的代码。
使用此代码我得到:
foreach (byte[] doc in documents.Select(c => c.Content))
{
using (var ms = new MemoryStream(doc))
{
ms.Position = 0;
var bm = new Bitmap(ms); //WHERE THE ERROR IS OCCURING
//put image in pdf document
}
}
为什么我需要全球评论制作'在第一个函数中声明但我不需要TARGET_LINES? (使用Python2.7)
local variable 'commentsMade' referenced before assignment
答案 0 :(得分:1)
如果对函数体中的变量进行赋值,则Python将该变量视为本地变量(除非将其声明为全局变量)。如果您只是读取函数体内的值而不指定它,那么它会在更高的范围内查找变量(例如,父函数或全局函数)。
因此,在您的情况下,区别在于您分配给commentsMade
,这使其成为本地,但您没有分配给TARGET_LINES
,因此它会查找它的全局定义。< / p>