import 的一个问题

2020 年 7 月 24 日
 testor

在一个目录下有 2 个文件,a.pyb.py

a.py:

from b import function
a = 2
function()

b.py:

a = 1
def function():
    print(a)

执行 a.py ,输出结果是 1,为什么不是 2 呢

然后如果在 b.py 中注释 a=1,执行时会报找不到 a

1489 次点击
所在节点    问与答
7 条回复
fcmio
2020 年 7 月 24 日
然后呢???
Vegetable
2020 年 7 月 24 日
这是变量作用域的问题,和 import 关系不大,重点学习 Markdown 作用域 global nolocal 内部作用域 命名空间 等关键字搜索出来的资料。
Vegetable
2020 年 7 月 24 日
啊编辑了,Markdown 看起来掌握了!
JeffGe
2020 年 7 月 24 日
a.py:
import b

b.num = 3
num = 1
b.function() # 输出 3


b.py:
num = 2

def function():
print(num)
ArianX
2020 年 7 月 24 日
module 作用域
testor
2020 年 7 月 24 日
@Vegetable 和 import 有关系的,我的问题是导入模块为什么不能访问当前模块的全局变量
julyclyde
2020 年 7 月 24 日
虽然 import 了,但 function 依然是 b.py 内的,并没有变成 a.py 内的成员

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/692711

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX