我有一个程序,我已经定义了一个名为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()
都在我导入的单独文件中。我不确定这是否意味着什么。