【发布时间】:2014-11-18 17:56:03
【问题描述】:
基本上我正在尝试更新我在开头声明的字符串。然后我通过一个函数传递一个列表,该函数在通过测试后会将列表中的项目添加到字符串中,并用分号分隔每个项目。
这是我正在做的事情的精简版,但它证明了我认为的问题。
import os
passList=""
def checkItem(inString):
if inString.endswith(".tif")==True:
if passList=="":
passList=inString
else:
passList=passList + ";" + inString
itemList=os.listdir("C:\\temp")
for item in itemList:
checkItem(item)
print(passList)
我查看了一些有关使用“全局”功能的文档,但它们似乎没有显示适用于我情况的示例。目前,我收到“声明前使用的功能”错误。任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
请包含整个错误日志
-
你真的根本不想要全局可变状态。这是个坏主意。
-
尽管阅读了所有文档,但您似乎根本没有使用过 global 语句。在函数内部使用它,错误就会消失。
-
像@HasanRamezani 建议的那样添加
global passList是必要的,您还遇到脚本不会产生“声明前使用的函数”错误的问题。该错误仅意味着您正在调用代码中实际实现它的位置上方的函数。这在您的示例中没有发生。您运行的脚本与您向我们展示的脚本不同。
标签: python function variables global