Refresh valoare importate dintr-un modul de piton

voturi
0

Am un proiect cu proiect cu mai multe fișiere pentru o declar o variabilă ca și Fără apoi în interiorul unei funcții pot actualiza valoarea acestuia.

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

M - am gândit că a fi o variabilă globală va actualiza chiar și după importarea , deoarece din module_1.py fișier Sunt actualizarea valorii sale. Dar nici unul nu sa

Care este modul corect de a face acest lucru? Asigurați-o funcție get și returnează obiectul în sine? Există vreo modalitate de a actualiza variabile după importarea acestora?

Întrebat 09/10/2019 la 12:54
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

TLDR : schimba fromimportul înmodule_2

import module_1
from module_1 import read_files

read_files()
print(module_1.df_data)

Explicație: dvs. from module_1 import df_datacreează o referință în domeniul de aplicare al module_2a df_datadin module_1. În dvs. read_files()funcție vă înlocuiți valoarea df_dataîn domeniul de aplicare globală a module_1, dar acest lucru (așa cum l - ați dat seama) nu schimbă nimic în domeniul de aplicare al module_2.

Publicat 09/10/2019 la 14:10
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more