Actualisez valeur importée d'un module python

voix
0

J'ai un projet avec le projet avec plusieurs fichiers pour un je déclare une variable Aucun puis dans une fonction mettre à jour sa valeur.

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

Je pensais qu'être une variable globale , il mettrait à jour même après l' importation , car à partir module_1.py fichier je mettre à jour sa valeur. Mais son pas

Quelle est la bonne façon de le faire? Faire une fonction get et retourner l'objet lui-même? Est-il possible de rafraîchir les variables après les importer?

Créé 09/10/2019 à 12:54
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

TLDR : modifier l' fromimportationmodule_2

import module_1
from module_1 import read_files

read_files()
print(module_1.df_data)

Explication: votre from module_1 import df_datacrée une référence dans le champ d' module_2à df_datapartir module_1. Dans votre read_files()fonction vous remplacez la valeur df_datadans la portée globale de module_1, mais (comme vous figured it out) ne change rien dans le champ d'application module_2.

Créé 09/10/2019 à 14:10
source utilisateur

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