from module import * nie działa wewnątrz funkcji

0

Hej niestety wewnatrz funkcji nie mogę użyć polecenia from module import * bo Python krzyczy bład. Wiem ze moge napisac

exec(open(file).read())
ale wtedy jak chce dalej w tej funkcji uzyc zmiennych z tego skryptu to teoretycznie pokazuje ze sa one niezdefiniowane ale jak uruchomie funkcje to kod dziala. Pytanie czy da sie to zrobic tak zeby juz na poziomie pisania kodu compiler wiedzial ze takie zmienne beda dostepne? Chodzi o to ze wewnatrz pliku file wykonuje sie sporo obliczen i po ich zakonczeniu chcialbym miec dostep do tych zmiennych ktore sie tam utworza.

1

Nie możesz tak zrobić, bo interpreter w chwili wykonania nie będzie znał nazw zmiennych lokalnych. Zaimportuj sobie cały moduł i wtedy się do niego odnoś przez namespace:

def func():
    import numpy as np
    return np.array([1, 1])
0

Strasznie zagmatwanie napisałeś, nie jestem pewien co masz na myśli.
Jeśli masz plik(file) np. code.py
a tam zmienną np. result = 2352*252
To jak zrobisz from code import result
To ten wynik zaimportujesz bez problemu jedyny warunek to, ze musi być globalnie zainicjowany.

0
Szalony Programista2 napisał(a):

Strasznie zagmatwanie napisałeś, nie jestem pewien co masz na myśli.
Jeśli masz plik(file) np. code.py
a tam zmienną np. result = 2352*252
To jak zrobisz from code import result
To ten wynik zaimportujesz bez problemu jedyny warunek to, ze musi być globalnie zainicjowany.

ok czyli jak code to skrypt w ktorym tworzy sie masa zmiennych jak np. variable_1 i variable_2, ..., variable_n to jak wpisze from code import variable_1 to co sie stanie? Wykona sie caly skrypt i wartosc wszystkich zmiennych zostanie wyznaczona ale ja zaimportuje tylko wartosc zmiennej variable_1 czy wykona sie tylko ta czesc kodu ktora jest wymagana zeby wyznaczyc wartosc zmiennej variable1? Bo chcialbym otrzymac efekt tej pierwszej sytuacji

1 użytkowników online, w tym zalogowanych: 0, gości: 1