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
相关产品推荐
相关产品推荐

