如何在Python的另一个函数中访问并使用另一函数内的变量
解决方案
你的核心问题是函数内部的局部变量无法被其他函数直接访问,func1里的my_list是该函数的局部变量,func2必须通过参数传递才能拿到它。下面是两种可行的实现方式:
方式一:在func1内部调用func2并传递my_list
直接在func1里生成my_list后,把它作为参数传给func2,这样func2就能操作它的元素了:
def func1(my_list, test1, test2): my_list = [ {'name': 'Saeed', 'id': 1}, {'name': 'David', 'id': 2} ] # 把my_list传给func2 func2(my_list) def func2(name): name[0]['id'] += 1
调用func1后,my_list[0]['id']会被修改为2。
方式二:让func1返回my_list,外部调用时传给func2
如果需要在func1外部操作这个列表,可以让func1返回它,再在外部传递给func2:
def func1(my_list, test1, test2): my_list = [ {'name': 'Saeed', 'id': 1}, {'name': 'David', 'id': 2} ] return my_list def func2(name): name[0]['id'] += 1 # 外部调用示例 result_list = func1(None, "test1_val", "test2_val") func2(result_list) print(result_list[0]['id']) # 输出2
注意:你原来的func1参数里也有一个my_list,但函数内部直接重新赋值覆盖了它,这个参数如果没用可以考虑删除,避免混淆。
内容的提问来源于stack exchange,提问作者Saeed
相关产品推荐
相关产品推荐

