Python 调用函数的问题

2019-05-29 21:38:33 +08:00
 leartang

a.py

data ="XXXXXXXX"

def aa():

 print("LLLLLLL"+ data)

aa()


b.py

from a import aa

data ="111111111"

aa()

执行结果:

LLLLLLLXXXXXXXX

LLLLLLLXXXXXXXX

为什么 b 里面赋值没用,而且单写一条 from a import aa 也会执行一次,有没有 PY 大佬解答一下...3.7.3

1700 次点击
所在节点    Python
8 条回复
boom7
2019-05-29 21:45:20 +08:00
a.py 里的 data 和 b.py 里的 data 不是同一个 data,就好像你和隔壁小明都叫小明,你妈打了你一顿你问为什么隔壁小明屁股没肿?
leartang
2019-05-29 21:51:10 +08:00
@boom7 那要怎么做才能让隔壁的小明一起肿😂
decemberpei
2019-05-29 21:52:23 +08:00
1. a 里面的 data 跟 b 里面的 data 是两个变量,只在各自的模块中有效,所以你根本没赋值,
2. import 的时候本来就会执行模块的代码
ksedz
2019-05-29 21:54:11 +08:00
你可以理解为 aa() 执行的时候是跳到了模块 a 执行的 aa,而不是把 aa 拿过来执行
boom7
2019-05-29 21:55:18 +08:00
@leartang #2
a 中修改为:
def aa(data):
print("LLLLLLL"+ data)

b 中的调用修改为 aa("111111111")
leartang
2019-05-29 22:09:00 +08:00
@boom7 感谢大佬
cjq8z
2019-05-30 12:30:02 +08:00
去网上找本新手教程看看,比如«Python 从入门到实践»,网上有 PDF 版,按照书本里面内容,把 Python 内容过一边,并把书籍里面的例子过一遍以及后面那三个项目搞搞。学完书籍的内容,你就可以知道 Python 的一些基础知识以及注意点。

也不用跑来 V 站上问 Python 的函数调用这样非常基础的问题。
limuyan44
2019-05-30 16:17:10 +08:00
这不是正常的吗。。。

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

https://www.v2ex.com/t/568917

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

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

© 2021 V2EX