2017-02-20 10 views
0

У меня есть файл .py с указанной функцией:При импорте функции, дополнительные инструкции приходят прилагаются

импортом случайного

Защиту random_m (а):

b = [[0 for _ in range(a)] for _ in range(a)] 
for i in range(a): 
    for j in range(a): 
     b[i][j] = random.randint(100,999) 
    print('{}'.format(b[i],[j])) 

п = INT (вход (» Введите размер матрицы: ")) random_m (n)

Теперь я хочу использовать эту функцию в другом .py файле. я пишу: из file1.py импорта random_m random_m (10)

когда exectuing файл, он постоянно спрашивает меня ввести размерность матрицы. Зачем? Эта инструкция не включена в тело функции. Я уже вставил аргумент «10».

Благодарим за помощь!

+0

Python первым оценить весь код файла а затем функция помещается в ваше пространство имен – TheClonerx

+0

Правильно отформатируйте свой код в вопросе. Существует код-код '{}', который вы можете использовать. – Evert

+0

Функция 'input' используется на уровне модуля. При импорте этого модуля оценивается все на уровне модуля. Если вы хотите этого избежать, вы можете использовать конструкцию 'if __name__ == '__main__': ' в модуле. – Evert

ответ

0
def random_m(a): 
    b = [[0 for _ in range(a)] for _ in range(a)] 
    for i in range(a): 
    for j in range(a): 
     b[i][j] = random.randint(100,999) 
    print('{}'.format(b[i],[j])) 

if __name__ == '__main__': 
    n = int(input("Enter dimension of matrix: ")) 
    print(random_m(n)) 

Это будет выполнять функцию входа (и все под if __name__ == '__main__':) только тогда, когда модуль не импортируется (например, когда вы дважды щелкните по нему в окнах)

Смежные вопросы