初学python,有关导入模块的问题
function模块内容在注释里。我的问题是,为什么最终结果是88而不是99?f方法为什么不起作用?...
function模块内容在注释里。我的问题是,为什么最终结果是88而不是99?f方法为什么不起作用?
展开
3个回答
2018-06-05
展开全部
#main.py
from func import x
print(x)
from func import f
# 在其他py中导入,解释器找不到你当前的x变量,所以不会更改当前的x变量,可以理解为两个x变量在内存中,id不一样
# def f ():
# global x #在当前py中,声明x为全局变量,才更改
# x = 99
f()
print(x)
#func.py
x = 88
def f ():
global x
x = 99
print("f")
print(x)
追问
请问为什么id是不一样的?
我的理解就是,使用了from语句之后,在main的命名空间新建了一个指向内存88的变量x。然后使用f函数,将main的命名空间中x改为指向99。然后打印变量x。
您的说法是不是可以理解成:其实f函数是作用在func命名空间里的,改的是func里的变量x?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询