Oppdater importert verdi fra en python-modul

stemmer
0

Jeg har et prosjekt med prosjekt med flere filer for en jeg erklærer en variabel som None og deretter inne i en funksjon jeg oppdatere den verdi.

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

Jeg trodde at det å være en global variabel det ville oppdatere selv etter å importere fordi fra module_1.py filen jeg oppdaterer sin verdi. Men det er ingen

Hva er den riktige måten å gjøre dette? Lag en funksjon Get og returnere selve objektet? Er det noen måte å oppdatere variablene etter å importere dem?

Publisert på 09/10/2019 klokken 12:54
kilden bruker
På andre språk...                            


1 svar

stemmer
1

TLDR : endre fromimport imodule_2

import module_1
from module_1 import read_files

read_files()
print(module_1.df_data)

Forklaring: din from module_1 import df_dataskaper en referanse i omfanget av module_2å df_datafra module_1. I read_files()funksjon erstatte deg verdien av df_datai det globale omfanget av module_1, men dette (som du har funnet det ut) ikke endrer noe i omfang module_2.

Svarte 09/10/2019 kl. 14:10
kilden bruker

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