You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何从另一个文件调用类中的函数?

解决Python类方法的导入问题

嘿,刚接触Python遇到导入问题太正常了,我来一步步帮你搞定~

首先先提个小细节:你示例里的addelement方法定义少了第一个参数self,类的实例方法必须把self作为第一个参数(用来指代实例本身),不然调用的时候会报错,修正后的代码应该是:

import json
class Functionalities:
    def addelement(self, element):
        # code goes here
        print(f"Added element: {element}")

接下来针对你的导入问题,分几种常见情况来说:

情况1:脚本和functions.py在同一目录下

这是最常见的场景,直接用绝对导入就行,不需要用相对导入的.:

# 你的可执行脚本里的代码
from functions import Functionalities

# 先实例化类,再调用方法
func_instance = Functionalities()
func_instance.addelement("hello")

情况2:想用相对导入(包结构场景)

你之前尝试的from . import functions属于相对导入,这种方式只适用于把代码组织成Python包的情况(也就是目录下有__init__.py文件):

  1. 先在两个文件所在的目录下创建一个空的__init__.py文件,这样Python就会把这个目录识别为一个包
  2. 如果你的脚本是包内部的模块(比如和functions.py同属一个包),可以这样导入:
from .functions import Functionalities

但要注意:如果这个脚本是你直接运行的主程序(比如用python script.py执行),Python会把它当成顶层模块,这时候用相对导入还是会报错,这种情况下更推荐用绝对导入。

情况3:functions.py在子目录中

如果你的项目结构是这样的:

my_project/
    main.py  # 你的可执行脚本
    utils/
        functions.py
        __init__.py

那在main.py里可以这样导入:

from utils.functions import Functionalities

最后再提醒一句:运行脚本时,确保你的工作目录是脚本所在的目录,或者把项目目录添加到Python的环境变量sys.path里(不过同一目录或包结构下一般不需要手动操作)。

内容的提问来源于stack exchange,提问作者Mher Harutyunyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:07:08