首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImportError:无法导入名称MainClass

ImportError:无法导入名称MainClass
EN

Stack Overflow用户
提问于 2018-05-13 11:21:31
回答 1查看 284关注 0票数 1

社会。我正在尝试理解OOP编程,我面临着一些问题并寻求帮助。

下面是示例:

我正在尝试创建一个类下的所有对象,然后我想从这个类继承。

test_class/baseclass.py

代码语言:javascript
复制
from test_class.first_class import FirstClass
from test_class.second_class import SecondClass


class MainClass:
    def __init__(self):
        self.firstclass = FirstClass()
        self.secondclass = SecondClass()

test_class/first_class.py

代码语言:javascript
复制
from test_class.baseclass import MainClass

    class FirstClass(MainClass):
        def __init__(self):
            MainClass.__init__(self)

        def add_two_number(self):
            return 2 + 2

test_class/second_class.py

代码语言:javascript
复制
from test_class.baseclass import MainClass

class SecondClass(MainClass):
    def __init__(self):
        MainClass.__init__(self)

    def minus_number(self):
        return self.firstclass.add_two_number() - 10


if __name__ == '__main__':
    print(SecondClass().minus_number())

当我运行最后一个文件时,我得到了这个错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "/Users/nik-edcast/git/ui-automation/test_class/second_class.py", line 1, in <module>
    from test_class.baseclass import MainClass
  File "/Users/nik-edcast/git/ui-automation/test_class/baseclass.py", line 1, in <module>
    from test_class.first_class import FirstClass
  File "/Users/nik-edcast/git/ui-automation/test_class/first_class.py", line 1, in <module>
    from test_class.baseclass import MainClass
ImportError: cannot import name MainClass

这只是一个例子,但我有不同的代码。我正在寻找一个基于这个例子的解决方案

EN

回答 1

Stack Overflow用户

发布于 2018-05-13 12:00:15

我将您的代码更改为:

baseclass.py

代码语言:javascript
复制
import first
import second

class MainClass:
    def __init__(self):
        self.firstclass = first.FirstClass()
        self.secondclass = second.SecondClass()

first.py

代码语言:javascript
复制
import baseclass

class FirstClass(baseclass.MainClass):
    def __init__(self):
        baseclass.MainClass.__init__(self)

    def add_two_number(self):
        return 2 + 2

second.py

代码语言:javascript
复制
import baseclass

class SecondClass():
    def __init__(self):
        baseclass.MainClass.__init__(self)

    def minus_number(self):
        return self.firstclass.add_two_number() - 10

if __name__ == '__main__':
    print(second.SecondClass().minus_number())

我没有得到任何ImportErrors或任何类型的错误。我认为你的ImportError与from有关,而不仅仅是import。我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50312470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档