Получение трассировки при наследовании от импортированных файлов - PullRequest
0 голосов
/ 27 апреля 2018

@first.py

class first():

   def fun1():
       print 'first one'

@second.py

class second():

    def fun2():
        print 'second one'

@third.py

import first

import second

class third (first, second):

    def fun3():
        f= first()
        s= second()
        f.fun1()
        s.fun2()
        print 'third one'

при запуске Third.py, я получаю трассировку

Traceback (most recent call last):
  File "C:\Python27\third.py", line 4, in <module>
    class third (first, second):
TypeError: Error when calling the metaclass bases
    module.__init__() takes at most 2 arguments (3 given)

1 Ответ

0 голосов
/ 27 апреля 2018

В вашем коде вы импортируете файл, но не импортировали класс

@first.py

class First(object):

   def fun1(self):
       print 'first one'

@second.py

class Second(object):

    def fun2(self):
        print 'second one'

@third.py

import first

import second

class Third(object):

    def fun3(self):
        f= first.First()
        s= second.Second()
        f.fun1()
        s.fun2()
        print 'third one'


Third().fun3()

#output:
first one
second one
third one

Также ниже представлен другой способ вызова первого и второго классов из файла:

@third.py

from first import First
from second import Second

class Third(object):
    def fun3(self):
        f= First()
        s= Second()
        f.fun1()
        s.fun2()
        print 'third one'


Third().fun3()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...