函数不使用上面函数的变量

时间:2014-06-17 20:06:39

标签: python global-variables

我有一个程序,我已经定义了一个名为historyA()

的函数
def historyA(self, name, price, category, sub, comment):
    sh = login("Budget")
    worksheet = sh.get_worksheet(0)
    emptyrowresize()
    date = getDate()
    toAppend = [date, name, category, sub, price, comment]
    worksheet.append_row(toAppend)

在此函数中,它提供变量工作表值。

之后,它立即运行函数emptyrowresize()

def emptyrowresize():
    print("\n")
    count = 0
    cycle = 0
    empty = False

    for i in range(emptyrowcount()):
        for i in range(worksheet.col_count):
            if(lastvalue(i+1) == ""):
                count += 1
            if(count >= worksheet.col_count):
                empty = True
            if(empty == True):
                worksheet.resize(worksheet.row_count-1,worksheet.col_count)
                print("Fixing empty row at {0}..." .format(worksheet.row_count+1))
                break

emptyrowresize()调用其中的函数lastvalue()

def lastvalue(x, y=0):
    cycles = 0
    #returns last value in col x with vertical offset y
    while(True):
        count = worksheet.row_count
        val = worksheet.cell(int(count-y), x).value
        cycles += 1
        if(val == ''):
            y = cycles
        else:
            break
    return val

和最后一个值需要在historyA()中命名的工作表,但它不断给出工作表不是已定义的全局变量的错误。

为什么这不起作用?我之前遇到过这个问题,但是我不记得我是如何修复它的,而不是为我需要处理的三个工作表中的每个工作表单独设置一个函数。

编辑:我觉得值得一提的是,所有传递的historyA()都在我导入的单独文件中。我不确定这是否意味着什么。

0 个答案:

没有答案