gpt4 book ai didi

python - 带导入的全局变量

转载 作者:IT老高 更新时间:2023-10-28 22:19:03 37 4
gpt4 key购买 nike

first.py
myGlobal = "hello"

def changeGlobal():
myGlobal="bye"

second.py
from first import *

changeGlobal()
print myGlobal

我得到的输出是

hello

虽然我认为应该是

bye

为什么调用changeGlobal()函数后全局变量myGlobal没有变化?

最佳答案

试试:

def changeGlobal():
global myGlobal
myGlobal = "bye"

实际上,这也行不通。当您 import * 时,您创建了一个新的 local 模块全局 myGlobal,它不受您想要的更改的影响(只要您不是改变变量,见下文)。你可以改用这个:

import nice

nice.changeGlobal()
print nice.myGlobal

或者:

myGlobal = "hello"

def changeGlobal():
global myGlobal
myGlobal="bye"

changeGlobal()

但是,如果您的 global 是一个可变容器,那么您现在持有对可变容器的引用并且能够看到对其所做的更改:

myGlobal = ["hello"]

def changeGlobal():
myGlobal[0] = "bye"

关于python - 带导入的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4706879/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com