stack = []
i=0
def push(val):
stack.append(val)
i+=1
def popout():
del stack[i-1]
def maximum ():
print(f"{i} elements present")
push(3)
push(4)
maximum()
在python解释器中它说:
UnboundLocalError:在分配之前先引用了本地变量
。
我在全球宣布自己的位置
答案 0 :(得分:3)
如果您为函数中的变量赋值,则Python会假定它是局部变量。
如果您不想这样做,请在函数中添加global i
:
def push(val):
global i
stack.append(val)
i+=1
也就是说,这几乎总是一个坏主意。
答案 1 :(得分:0)
i+=1
分配在i
函数内创建了一个新的局部变量push
。
如果要使用全局变量i
,请使用global
关键字。
def push(val):
global i
stack.append(val)
i+=1