【问题标题】:Use of undeclared variable [duplicate]使用未声明的变量[重复]
【发布时间】:2020-01-08 12:32:11
【问题描述】:
def fi(n):
    print(counter)
    data = counter + 1
    return data


counter = 2
print(fi(10))

这段代码如何运作良好? 我猜这段代码不能很好地工作,因为counterfi()function 中,没有声明counter...

【问题讨论】:

  • counter 将寻找一个局部变量,如果它没有找到,它会在任何封闭范围内寻找该变量,最后在全局范围内寻找。所以是的,这会起作用。
  • 你不应该用counter 代替n吗?
  • 这个函数/代码的目的或上下文是什么?无论n 的值如何,您是否打算让fi 将计数器增加1?你的意思是增加n吗?您是否打算使用n
  • 谢谢~~~我明白了

标签: python python-3.x


【解决方案1】:

您误用了 counter 变量;要保持函数纯净,只需在函数中使用 n,例如:

def fi(n):
    print(n)
    data = n + 1
    return data


counter = 2
print(fi(counter))

【讨论】:

  • 我知道我在误用,但是即使 fi() 函数中没有声明,计数器也可以正常工作
  • 因此,如果超出范围,您将无法使用它;如果在范围内;你可以使用它。如果要更改它,请将函数的输出分配给变量:这就是它的工作原理。
猜你喜欢
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 2018-10-02
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多