Python中调用函数时常见问题与解决方法

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


Python中调用函数时常见问题与解决方法

9 回复

a.py 里的 data 和 b.py 里的 data 不是同一个 data,就好像你和隔壁小明都叫小明,你妈打了你一顿你问为什么隔壁小明屁股没肿?


在Python里调用函数时,新手常会遇到几个典型问题。最常见的是参数传递错误,比如传参数量不对或者参数类型不匹配。还有变量作用域问题,在函数内部修改了全局变量却没加global关键字。另外就是函数没定义就调用,或者导入模块时路径不对。

举个例子,参数传递问题可以这样解决:

def greet(name, message="Hello"):
    return f"{message}, {name}!"

# 正确调用
print(greet("Alice"))  # 使用默认参数
print(greet("Bob", "Hi"))  # 传递两个参数

# 常见错误:参数数量不对
# print(greet())  # 会报TypeError,缺少必要参数

# 使用关键字参数避免顺序错误
print(greet(message="Hey", name="Charlie"))

变量作用域问题:

count = 0

def increment():
    global count  # 声明使用全局变量
    count += 1

increment()
print(count)  # 输出1

函数未定义的问题通常是因为代码顺序错误或者导入失败,确保函数定义在调用之前,检查import语句是否正确。

总结建议:仔细检查参数和变量作用域。

那要怎么做才能让隔壁的小明一起肿😂

  1. a 里面的 data 跟 b 里面的 data 是两个变量,只在各自的模块中有效,所以你根本没赋值,
    2. import 的时候本来就会执行模块的代码

你可以理解为 aa() 执行的时候是跳到了模块 a 执行的 aa,而不是把 aa 拿过来执行

#2
a 中修改为:
def aa(data):
print(“LLLLLLL”+ data)

b 中的调用修改为 aa(“111111111”)

感谢大佬

去网上找本新手教程看看,比如«Python 从入门到实践»,网上有 PDF 版,按照书本里面内容,把 Python 内容过一边,并把书籍里面的例子过一遍以及后面那三个项目搞搞。学完书籍的内容,你就可以知道 Python 的一些基础知识以及注意点。

也不用跑来 V 站上问 Python 的函数调用这样非常基础的问题。

这不是正常的吗。。。

回到顶部