Python вызывает импортированную функцию из другого файла .py, но импортированная функция не может видеть другую импортированную модуль в главном файле - PullRequest
1 голос
/ 03 апреля 2020

У меня есть функция, определенная в другом файле nhpp_next_arrival.py , которая содержит функцию. Важно отметить, что я использую пакет numpy.

def nhpp_next_arrival(t,Lambda, h_lam):
    # current starting time t
    # rate handle h_lam
    # Lambda a majorizing function/constant

    U = np.random.uniform()
    V = np.random.uniform()

    t = t - np.log(U)/Lambda


    while V > h_lam(t)/Lambda:

        t = t - np.log(U)/Lambda
        U = np.random.uniform()
        V = np.random.uniform()

    return t

Я импортировал эту функцию в другой файл, как показано ниже:

import numpy as np
from nhpp import *

#Call nhpp_next_arrival
t_arrival = nhpp_next_arrival(t=t, Lambda=max_arrival, h_lam=h_arr_total)

Затем я получил следующее сообщение об ошибке.

U = np.random.uniform() NameError: имя 'np' не определено

Спасибо!

1 Ответ

1 голос
/ 03 апреля 2020

Вы можете быть перепутаны с C #include (или чем-то подобным).

Ваш код использует numpy.random на nhpp_next_arrival.py, поэтому вы должны иметь наверху

import numpy as np

Даже если вы импортировали его перед импортом в этот файл, когда интерпретатор видит

from nhpp import *

, он не импортирует пакеты в пространство имен этого модуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...