ImportError: невозможно импортировать имя MainClass - PullRequest
0 голосов
/ 13 мая 2018

общество.Я пытаюсь понять программирование ООП и сталкиваюсь с некоторыми проблемами и прошу помощи.

Вот пример:

Я пытаюсь создать все объекты в одном классе, а затемЯ хочу наследовать от этого класса.

test_class / baseclass.py

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

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

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

Когда я запускаю последний файл, я получаю эту ошибку

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

это всего лишь пример, но у меня другой код.и я ищу решение на основе этого примера

1 Ответ

0 голосов
/ 13 мая 2018

Я изменил ваш код на это:

baseclass.py

import first
import second

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

first.py

import baseclass

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

    def add_two_number(self):
        return 2 + 2

second.py

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.Надеюсь, это поможет.

...