这个模块有什么问题?

时间:2011-06-22 23:19:20

标签: python

我已经对这个python模块语句进行了三重检查,并且它无效...

correct = 0
ahtriggercount = 0

def IsCorrect():
    #Increase correct count.
    correct = correct + 1
    #Lower autohelp trigger count.
    if ahtriggercount > 0:
        ahtriggercount = ahtriggercount - 1

一般的“语法错误”(IDE没有提供进一步的信息)被抛出......

if ahtriggercount > 0:

有什么问题?为什么我们不能访问ahtriggercount变量?

3 个答案:

答案 0 :(得分:3)

你需要告诉python你正在访问一个全局变量。像这样:

correct = 0
ahtriggercount = 0

def IsCorrect():
    global correct, ahtriggercount
    #Increase correct count.
    correct = correct + 1
    #Lower autohelp trigger count.
    if ahtriggercount > 0:
        ahtriggercount = ahtriggercount - 1

默认情况下,全局变量是只读的,除非您使用全局声明。

你还有一个空白问题。其中一条线上有一些奇怪的空间。当我删除空格并再次添加它们时,我停止了IndentationError。

答案 1 :(得分:2)

您需要声明ahtriggercount并将其更正为全局,因为您正在修改它们的值。

def IsCorrect():
    global ahtriggercount, correct
    #Increase correct count.
    correct = correct + 1
    #Lower autohelp trigger count.
    if ahtriggercount > 0:
        ahtriggercount = ahtriggercount - 1

答案 2 :(得分:0)

在不知道错误消息的情况下我们只能猜测。但是,您的代码段在语法上似乎是正确的。也许你把空格和制表符混在一起或者在一行中删除一个空格或制表符?右缩进在Python中至关重要。