问题:从Python中的另一个文件调用函数
设置:我需要在程序中使用每个函数的.py文件。
在此程序中,我需要从外部文件调用该函数。
我试过了:
from file.py import function(a,b)
但是我得到了错误:
ImportError:没有名为“ file.py”的模块;文件不是包
我该如何解决这个问题?
回答 0
file.py
导入时无需添加任何内容。只需编写from file import function
,然后使用调用函数function(a, b)
。之所以可能不起作用,是因为它file
是Python的核心模块之一,所以我建议您更改文件名。
请注意,如果您尝试将函数从导入a.py
到名为的文件中b.py
,则需要确保a.py
和b.py
处于同一目录中。
回答 1
首先,您不需要.py
。
如果您有文件a.py
并且内部有一些功能:
def b():
# Something
return 1
def c():
# Something
return 2
而您要导入它们,z.py
您必须编写
from a import b, c
回答 2
您可以通过2种方式执行此操作。首先只是从file.py导入所需的特定功能。为此使用
from file import function
另一种方法是导入整个文件
import file as fl
然后您可以使用以下命令在file.py中调用任何函数
fl.function(a,b)
回答 3
如果您不能或不想在正在使用的同一目录中使用该函数,也可以从其他目录中调用该函数。您可以通过两种方式来做到这一点(也许还有更多选择,但这是对我有用的选择)。
备选方案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
回答 4
如果您的文件位于不同的包结构中,并且您想从其他包中调用它,则可以按照以下方式调用它:
假设您在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
回答 5
遇到了相同的功能,但我必须执行以下操作才能使其正常工作。
如果看到“ ModuleNotFoundError:未命名模块”,则可能需要在文件名前面加点号(。),如下所示;
从.file导入功能
回答 6
首先以.py格式保存文件(例如my_example.py
)。如果该文件具有功能,
def xyz():
--------
--------
def abc():
--------
--------
在调用函数中,您只需要键入以下几行。
文件名:my_example2.py
===========================
import my_example.py
a = my_example.xyz()
b = my_example.abc()
===========================
回答 7
将模块重命名为“文件”以外的名称。
然后还要确保在调用函数时:
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()
回答 8
.py文件中的函数(可以(当然)可以在不同目录中)可以通过首先写入目录然后输入不带.py扩展名的文件名来简单地导入:
from directory_name.file_name import function_name
后来被使用: function_name()
回答 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
回答 10
您不必添加file.py
。
只需将文件与文件导入位置保持在相同位置即可。然后只需导入您的函数:
from file import a, b
回答 11
您应该将文件与要导入的Python文件放在同一位置。“从文件导入功能”也足够。
回答 12
如果要导入此文件,请在文件名前附加一个点(。),该文件与运行代码的目录相同。
例如,我正在运行一个名为a.py的文件,我想导入一个名为addFun的方法,该方法是用b.py编写的,而b.py在同一目录中
从.b import addFun
回答 13
假设您要调用的文件是anotherfile.py,并且您要调用的方法是method1,然后先导入文件,然后再导入方法
from anotherfile import method1
如果method1是类的一部分,则将该类设为class1,则
from anotherfile import class1
然后创建一个class1对象,假设对象名称是ob1,然后
ob1 = class1()
ob1.method1()
回答 14
就我而言,我命名了文件helper.scrap.py
,直到更改为helper.py