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

Python如何调用同目录下另一文件中定义的类的成员方法

Python跨文件导入自定义类的实现方案

我正在学习Python,希望从主文件(或其他类文件)中实例化另一文件内定义的类并调用其方法,有其他编程语言基础但一直找不到正确实现示例,现将相关信息整理如下:

运行环境配置

  • 所有文件(main.py和MathsOperations.py)存放于同一目录
  • Python版本为3.7
  • IDE为刚升级的PyCharm 2020.2
  • 直接在文件所在目录下运行main.py

类文件MathsOperations.py代码

class MathsOperations:
    def __init__ (self, x, y):
        self.a = x
        self.b = y
    def testAddition (self):
        return (self.a + self.b)

    def testMultiplication (self):
        return (self.a * self.b)

已尝试的错误方案及对应报错

尝试方案1

main.py代码:

from . import MathsOperations

if __name__ == '__main__':
    xyz = MathsOperations(2, 3)
    print( xyz.testAddition())

报错信息:ImportError: cannot import name 'MathsOperations' from '__main__'

尝试方案2

main.py代码:

import MathsOperations;

if __name__ == '__main__':
    xyz = MathsOperations(2, 3)
    print( xyz.testAddition())

报错信息:No module named MathOperations

尝试方案3

main.py代码:

from .MathsOperations import MathsOperations

if __name__ == '__main__':
    xyz = MathsOperations(2, 3)
    print( xyz.testAddition())

报错信息:ModuleNotFoundError: No module named '__main__.MathsOperations'; '__main__' is not a package

最终解决方案

使用如下导入写法即可正常运行:

from MathsOperations import MathsOperations

if __name__ == '__main__':
    xyz = MathsOperations(2, 3)
    print( xyz.testAddition())

注意:该写法在PyCharm中会产生警告,可直接忽略。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 07:36:04