为什么这个python程序打印Tru

2024-05-06 15:43:06 发布

您现在位置:Python中文网/ 问答频道 /正文

x=True
def stupid():
    x=False
stupid()
print x

Tags: falsetruedefprintstupid
3条回答

因为x的作用域是stuble()函数的局部作用域。一旦你调用了这个函数,它就结束了,你就超出了它的范围,并且打印出了在stuble()函数外部定义的“x”值——而且,在stubid()函数的内部定义的x在堆栈中就不再存在了(一旦该函数结束)

评论后编辑:

当您打印时,外部x会被引用,就像您所做的那样。在

内部x只能在函数stubid()内引用。所以你可以在函数内部打印,这样你就能看到它里面的x值。在

关于“全球”

  • 很明显,它能解决问题
  • 这么频繁地使用不是个好主意
  • 导致可读性和可伸缩性问题(可能更多)
  • 根据您的项目,您可能需要重新考虑使用在局部函数内部定义的全局变量。在

在Python中不需要声明函数局部变量。“x=False”指的是一个x本地到stuble()。如果你真的想修改愚蠢中的全局x:

def stupid():
    global x
    x=False

要回答下一个问题,请使用global

x=True
def stupid():
    global x
    x=False
stupid()
print x

相关问题 更多 >