gpt4 book ai didi

python-3.x - 刷新从 python 模块导入的值

转载 作者:行者123 更新时间:2023-12-05 02:59:09 24 4
gpt4 key购买 nike

我有一个包含多个文件的项目例如,我将一个变量声明为 None,然后在一个函数中更新它的值。

module_1.py

import pandas as pd
df_data = None
def read_files():
global df_data
df_data=pd.read_xlsx('dummy.xlsx')

module_2.py

from module_1 import df_data
from module_1 import read_files

read_files()
print(df_data)
# This returns None

我认为作为一个全局变量,即使在导入后它也会更新,因为我正在从 module_1.py 文件更新它的值。但它没有。

我认为这是因为 python 最初使用值 None 导入模块,即使设置为全局它也不会重新加载该值。

我可以做一个 get 函数,但还有其他方法吗?

正确的做法是什么?制作一个get函数并返回对象本身?有什么办法可以在导入后刷新变量吗?

最佳答案

TLDR:更改 module_2 中的 from 导入

import module_1
from module_1 import read_files

read_files()
print(module_1.df_data)

说明:您的 from module_1 import df_datamodule_2 范围内创建了一个引用,从 module_1df_data .在您的 read_files() 函数中,您在 module_1 的全局范围内替换了 df_data 的值,但这(如您所想的那样)不会'更改 module_2 范围内的任何内容。

关于python-3.x - 刷新从 python 模块导入的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58301548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com