从Python中的另一个文件调用函数

 Bella团 发布于 2023-02-13 16:27

Set_up:我有一个.py文件,用于我需要在程序中使用的每个函数.

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

我试过了:

from file.py import function(a,b)

但我得到错误:

ImportError:没有名为'file.py'的模块; 文件不是包

我该如何解决这个问题?

10 个回答
  • 首先以.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()
    

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

    2023-02-13 16:28 回答
  • 你不必添加file.py.

    只需将文件保存在与要导入文件的文件相同的位置即可.然后只需导入您的功能:

    from file import a, b
    

    2023-02-13 16:28 回答
  • 如果文件位于不同的包结构中,并且您想从其他包中调用它,则可以按照以下方式调用它:

    假设您在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
    

    2023-02-13 16:29 回答
  • 在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

    2023-02-13 16:29 回答
  • 您可以通过两种方式完成此操作.首先只是从file.py导入你想要的特定功能.要做到这一点

    from file import function
    

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

    import file as fl
    

    然后你可以调用file.py中的任何函数

    fl.function(a,b)
    

    2023-02-13 16:29 回答
  • 首先,你不需要.py.

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

    def b():
      # Something
      return 1
    
    def c():
      # Something
      return 2
    

    并且你想要导入它们z.py你必须写

    from a import b, c
    

    2023-02-13 16:29 回答
  • 将模块重命名为“文件”以外的名称。

    然后还要确保在调用函数时:

    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()
    

    2023-02-13 16:29 回答
  • 遇到了相同的功能,但我不得不做下面的工作.

    如果您看到'ModuleNotFoundError:No module named',您可能需要在文件名前面的点(.),如下所示;

    来自.file import funtion

    2023-02-13 16:29 回答
  • file.py导入时无需添加.只需编写from file import function,然后使用调用该函数function(a, b).这可能不起作用的原因是因为它file是Python的核心模块之一,所以我建议你更改文件的名称.

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

    2023-02-13 16:29 回答
  • 您也可以从不同的目录中调用该函数,以防您不能或不想将该函数放在您正在使用的同一目录中.你可以用两种方式做到这一点(也许有更多的选择,但这些是对我有用的).

    备选方案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
    

    2023-02-13 16:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有