Vernieuwen geïmporteerd waarde uit een python module

stemmen
0

Ik heb een project met een project met meerdere bestanden voor één Ik verklaar een variabele als Geen en vervolgens in een functie update ik de waarde ervan.

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

Ik dacht dat dat een globale variabele het zou werken, zelfs na het importeren want vanaf module_1.py bestand waar ik de waarde ervan updaten. Maar zijn none

Wat is de juiste manier om dit te doen? Maak een functie get en terug te keren het object zelf? Is er een manier om variabelen te vernieuwen nadat ze te importeren?

De vraag is gesteld op 09/10/2019 om 12:54
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

TLDR : verander de fromimport inmodule_2

import module_1
from module_1 import read_files

read_files()
print(module_1.df_data)

Toelichting: je from module_1 import df_datacreëert een verwijzing in het kader van module_2naar df_datauit module_1. In je read_files()functie vervangt u de waarde van df_datain het globale bereik van module_1, maar dit (als je dacht dat het uit) verandert niets in het kader van module_2.

antwoordde op 09/10/2019 om 14:10
bron van user

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