从Python中的另一个文件调用的函数从Python中的另一个文件调用的函数(Call a func

2019-05-08 22:43发布

含间隙:我对每个我需要在程序中使用功能的.py文件。

在这个程序中,我需要从外部文件调用该函数。

我试过了:

from file.py import function(a,b)

但我得到的错误:

导入错误:没有模块名为“file.py”; 文件不是包

如何解决这个问题?

Answer 1:

没有任何需要补充file.py而进口。 只要写from file import function ,然后调用函数使用function(a, b) 之所以这样,可能无法正常工作,是因为file是Python的核心模块之一,所以我建议你改变你的文件的名称。

需要注意的是,如果你想从导入功能a.py到一个名为b.py ,你需要确保a.pyb.py在同一个目录下。



Answer 2:

首先你不需要.py

如果你有一个文件a.py和你里面有一些功能:

def b():
  # Something
  return 1

def c():
  # Something
  return 2

而要导入他们在z.py你必须编写

from a import b, c


Answer 3:

您可以通过两种方式做到这一点。 首先就是要导入你从file.py.想要的特定功能 要做到这一点使用

from file import function

另一种方法是导入整个文件

import file as fl

然后,你可以使用调用内部file.py任何功能

fl.function(a,b)


Answer 4:

您还可以从不同的目录功能以及,如果你不能或不想在你工作的同一目录的功能。 您可以通过两种方式(或许还有更多的选择,但这些都是为我工作过的那些)做到这一点。

替代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


Answer 5:

首先保存的.py格式的文件(例如, my_example.py )。 如果该文件具有的功能,

def xyz():

        --------

        --------

def abc():

        --------

        --------

在调用功能,你只需要键入以下行。

FILE_NAME:my_example2.py

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

import my_example.py


a = my_example.xyz()

b = my_example.abc()

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



Answer 6:

遇到同样的功能,但我不得不做以下,使其工作。

如果您看到“ModuleNotFoundError:没有名为模块”,你可能需要点在下面的文件名的前面;(。)

.file进口funtion



Answer 7:

您不必添加file.py

就在同一个位置的文件保持与要导入的文件。 然后,只需输入您的功能:

from file import a, b


Answer 8:

重命名模块比“文件”以外的东西。

然后还可以肯定,当你调用的函数:

1)如果要导入整个模块,你调用它时重申模块名称:

import module
module.function_name()

要么

import pizza
pizza.pizza_function()

2),或者如果要导入特定的功能,功能有一个别名,或使用*所有的功能,你不要重申模块名称:

from pizza import pizza_function
pizza_function()

要么

from pizza import pizza_function as pf
pf()

要么

from pizza import *
pizza_function()


Answer 9:

里面MathMethod.Py。

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

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

里面Main.Py

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

输出:1200



Answer 10:

你应该在相同的位置,你要导入Python的文件的文件。 也“从文件导入功能”就足够了。



Answer 11:

如果你的文件是在不同的封装结构,你想从不同的包调用它,那么你可以调用它以那种方式:

比方说,你有以下你的Python项目包结构:

在- com.my.func.DifferentFunction Python文件你有一些功能,如:

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

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

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

而你要调用不同的功能Example3.py ,那么下面的方法你可以做到这一点:

定义导入语句在Example3.py -文件导入所有功能

from com.my.func.DifferentFunction 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


Answer 12:

在我来说,我叫我的文件helper.scrap.py并不能使它工作,直到我改为helper.py



Answer 13:

假设你要调用的文件是anotherfile.py,你要调用的方法是方法1,那么首先导入该文件,然后方法

from anotherfile import method1

如果方法1是一个类的一部分,让课堂上的Class1,然后

from anotherfile import class1

然后创建Class 1的一个对象,假设对象名称OB1,然后

ob1 = class1()
ob1.method1()


文章来源: Call a function from another file in Python