При импорте функции из другого файла python был выполнен весь файл python, а не только вызываемая функция - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь получить доступ только к функции funtionc1 () из python_file1.py из python_file2.py. Когда я запускаю python_file2.py, он запускает весь код python_file1.py вместо простого выполнения функции из python_file1.py.

Code:

Python_file1.py

print("This is Python_file1.py")

def function1():
    print("This is a function written inside Python_file1.py")

Python_file2.py

import Python_file1

from Python_file1 import function1

print("This is Python_file2.py")

Python_file1.function1()

Вывод из Python_file2.py =

Это Python_file1.py <<<<<<<<<<< Я не должен видеть это </p>

Это Python_file2.py

Это функция, написанная внутри Python_file1.py

Однако я хочу, чтобы функция function1 из python_file1 запускалась так: это Python_file2. py

Эта функция написана внутри Python_file1.py

Что мне здесь не хватает? Горох советую.

Ответы [ 2 ]

2 голосов
/ 09 января 2020

Удалить оператор печати, затем. Импорт запустит весь модуль ...

И у вас есть дополнительный импорт, который ничего не делает

Python_file1.py

def function1():
 print("This is a function written inside Python_file1.py")

Python_file2.py

import Python_file1

print("This is Python_file2.py")

Python_file1.function1()

Вывод из Python_file2.py =

This is Python_file2.py

This is a function written inside Python_file1.py

Или сохраните оператор печати, и тогда вы сможете использовать его вместо этого, не в дополнение к

from Python_file1 import function1
function1()  # just call like this 
0 голосов
/ 09 января 2020

Вы можете попробовать следующий хак для достижения требуемого результата без изменения содержимого в Python_file1.py.

В Python_file2.py:

import os
import sys

# This is redirect the standard output
out = sys.stdout
null = open(os.devnull, 'w')
sys.stdout = null

from Python_file1 import function1

# Enable standard output
sys.stdout = out

print("This is Python_file2.py")
function1()

Вывод:

This is Python_file2.py
This is a function written inside Python_file1.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...