programing

다른 .py 파일에서 함수를 호출하려면 어떻게 해야 합니까?

goodsources 2022. 9. 11. 20:12
반응형

다른 .py 파일에서 함수를 호출하려면 어떻게 해야 합니까?

file.py라는 이름의 함수가 포함되어 있습니다.function. Import는 어떻게 하나요?

from file.py import function(a,b)

위의 오류는 다음과 같습니다.

ImportError: 'file.py'이라는 이름의 모듈이 없습니다.파일은 패키지가 아닙니다.

첫째, Importfunction부터file.py:

from file import function

나중에 다음 명령을 사용하여 함수를 호출합니다.

function(a, b)

주의:filePython의 핵심 모듈 중 하나이기 때문에 파일명을 변경할 것을 권장합니다.file.py다른 무언가로.

다음에서 함수를 Import하려고 할 경우a.py라고 하는 파일에b.py, 다음 사항을 확인해야 합니다.a.py그리고.b.py같은 디렉토리에 있습니다.

쓰지 않다.pyImport 시.

허락하다file_a.py에는 다음과 같은 기능이 포함되어 있습니다.

def f():
  return 1

def g():
  return 2

이러한 기능을 로 Import 하려면file_z.py, 다음을 수행합니다.

from file_a import f, g

파일이 다른 패키지 구조로 되어 있고 다른 패키지에서 호출하려면 다음과 같이 호출할 수 있습니다.

python 프로젝트에 다음과 같은 패키지 구조가 있다고 가정해 보겠습니다.

Python 패키지 및 파일 구조

인 -com.my.func.DifferentFunctionpython 파일에는 다음과 같은 함수가 있습니다.

def add(arg1, arg2):
    return arg1 + arg2

def sub(arg1, arg2) :
    return arg1 - arg2

def mul(arg1, arg2) :
    return arg1 * arg2

다른 함수를 호출하고 싶은 경우Example3.py다음 방법으로 실행할 수 있습니다.

Import 스테이트먼트의 정의Example3.py- 모든 기능 Import용

from com.my.func.DifferentFunction import *

또는 Import할 각 함수 이름을 정의합니다.

from com.my.func.DifferentFunction import add, sub, mul

그럼 인Example3.py함수를 호출하여 실행할 수 있습니다.

num1 = 20
num2 = 10

print("\n add : ", add(num1,num2))
print("\n sub : ", sub(num1,num2))
print("\n mul : ", mul(num1,num2))

출력:

 add :  30

 sub :  10

 mul :  200

방법 1파일에서 원하는 특정 기능을 가져옵니다.py:

from file import function

방법 2전체 파일 가져오기:

import file as fl

다음으로 file.py 내의 함수를 호출하려면 다음 명령을 사용합니다.

fl.function(a, b)

다른 디렉토리에서 함수를 호출할 수도 있습니다.이러한 디렉토리에서 함수를 호출할 수 없거나 호출하고 싶지 않은 경우입니다.이 작업은 두 가지 방법으로 수행할 수 있습니다(대안은 더 있을 수 있지만, 이 방법들이 나에게 효과가 있습니다).

대안 1 작업 디렉토리를 일시적으로 변경합니다.

import os

os.chdir("**Put here the directory where you have the file with your function**")

from file import function

os.chdir("**Put here the directory where you were working**")

대체 2 함수를 가진 디렉토리를 sys.path에 추가합니다.

import sys

sys.path.append("**Put here the directory where you have the file with your function**")

from file import function

고치다

Module Not Found Error: 명명된 모듈이 없습니다.

점을 찍어 보다.파일 이름 앞에 상대 Import를 수행합니다.

from .file import function

.py 파일의 함수(물론 다른 디렉토리에 있을 수 있음)는 먼저 디렉토리를 작성한 다음 확장자 .py를 붙이지 않은 파일 이름을 간단하게 가져올 수 있습니다.

from directory_name.file_name import function_name

나중에 function_name()

모듈 이름을 '파일'이 아닌 다른 이름으로 변경하십시오.

그리고 함수를 호출할 때도 다음 사항을 확인하십시오.

1) 모듈 전체를 Import 할 경우 모듈 이름을 반복하여 호출합니다.

import module
module.function_name()

또는

import pizza
pizza.pizza_function()

2) 또는 *를 사용하여 특정 함수, 별칭이 있는 함수 또는 모든 함수를 Import하는 경우 모듈 이름을 반복하지 않습니다.

from pizza import pizza_function
pizza_function()

또는

from pizza import pizza_function as pf
pf()

또는

from pizza import *
pizza_function()

형식으로 .py 파일).my_example.py함수가

def xyz():

        --------

        --------

def abc():

        --------

        --------

호출 기능에서는 아래 행만 입력하면 됩니다.

file_name: my_param2.화이

============================

import my_example.py


a = my_example.xyz()

b = my_example.abc()

============================

MathMethod 내부.파이.

def Add(a,b):
   return a+b 

def subtract(a,b):
  return a-b

메인 내부파이

import MathMethod as MM 
  print(MM.Add(200,1000))

출력: 1200

.코드를 실행하고 있는 디렉토리와 같은 디렉토리에 있는 이 파일을 Import 하는 경우는, 파일명 앞에 표시됩니다.

예를 들어, 다음 파일을 실행하고 있습니다.a.py.addFun.b.py , , , , 입니다.b.py 내에 ?

from .b import addFun

안 넣어도 요.file.py.

파일을 Import할 곳의 파일과 같은 장소에 보관합니다.그런 다음 함수를 Import합니다.

from file import a, b

】 : in one file 1 】myfun.py임의의 함수를 정의합니다.

# functions
def Print_Text():
    print( 'Thank You')

def Add(a,b):
    c=a+b
    return c 

다른 파일:

#Import defined functions
from myfun import *

#Call functions
Print_Text()
c=Add(1,2)

해결책 2: 위의 솔루션이 Colab에 대해 작동하지 않는 경우

  1. 를 만듭니다.myfun
  2. " " 를 .__init__.py
  3. 의 모든 을 기사에 쓰세요.__init__.py
  4. 노트북 Colab에서 . Importfrom myfun import *

Import하려는 Python 파일의 위치와 동일한 위치에 파일이 있어야 합니다.from file import 기능으로도 충분합니다.

위의 어떤 해결책도 나에게는 효과가 없었다.ModuleNotFoundError: No module named whtever 제 Import되었습니다. 수입하다

from . import filename # without .py  

나의 첫 번째 파일 안에 나는 다음과 같이 함수의 재미를 정의했다.

# file name is firstFile.py
def fun():
  print('this is fun')

두 번째 파일 안에 있는 함수를 fun이라고 부릅니다.

from . import firstFile

def secondFunc():
   firstFile.fun() # calling `fun` from the first file

secondFunc() # calling the function `secondFunc` 

호출하는 파일이 anotherfile.py이고 호출하는 메서드가 method1이라고 가정하고 먼저 파일을 Import하고 다음으로 메서드를 Import합니다.

from anotherfile import method1

method1이 클래스의 일부인 경우 클래스를 class1로 합니다.

from anotherfile import class1

그런 다음 class1 개체를 만들고 개체 이름을 ob1이라고 가정하면,

ob1 = class1()
ob1.method1()

엔 내 을 붙였어helper.scrap.py가 그 을 할 까지 잘 helper.py

detectiveROB.py i to call " (콜이 필요합니다)passGen 해시를 가 "에 있는 modules\passwordGen.py

저에게 가장 빠르고 쉬운 해결책은

아래는 내 디렉토리 구조입니다.

여기에 이미지 설명 입력

래서에서...detectiveROB.py.

from modules.passwordGen import passGen

여기에 이미지 설명 입력

간단한 제안입니다. alt+를 눌러 자동 Import를 믿는 사람은 Pycharm에 들어가 도움을 받을 수 없습니다.

Import처의 파일명을 변경하기만 하면 됩니다.파일을 오른쪽 클릭하여 refactor->rename을 클릭합니다.자동 Import 옵션이 표시됩니다.

언급URL : https://stackoverflow.com/questions/20309456/how-do-i-call-a-function-from-another-py-file

반응형