2017-02-18 24 views
-5

Я использую Python 3.5 на Pycharm. И я попытался определить 2 класса. Первый - суперкласс, второй - подкласс. код выглядит следующим образом: enter image description hereenter image description here и проблема возникает: enter image description here. Проблема в том, что p2 в классе Game (второе изображение).Использование super() в Python

В нем говорится: Эта инспекция сообщает о несоответствиях между объявленными параметрами и фактическими аргументами, а также неправильные аргументы (например, дубликаты названных аргументов) и неправильный порядок аргументов. Анализаторы также анализируются.

Так в чем проблема?

+1

Где код для 'B = Game (а)' (с сообщением об ошибке)? – tkausl

+0

убедитесь, что все необходимые аргументы были переданы, в то время как 'Game' instanciation – RomanPerekhrest

+0

Код - ** текст **. Отправляйте его как таковое, а не изображение. Мы не можем копировать его, чтобы воспроизвести вашу проблему, люди, полагающиеся на экранные программы, не могут помочь вам, и поисковая система не может проиндексировать это. –

ответ

0

При создании экземпляра класса Game вы должны передать две переменные в INIT:

game = Game(a, b) 
1

Это стоит идти за исключением проследить, что питон обеспечивает - часть проблемы в коде, который вы не сделали после. Если вы посмотрите на исключение, вы видите:

b=Game(a) 

Это означает, что вы передаете только один аргумент (a) в конструктор игр, где он ожидает 2 аргумента - p1 и p2.

Кроме того, при использовании super() вы не должны передавать аргумент self. Таким образом, вместо:

super().__init__(self, p1, p2) 

вы должны написать:

super().__init__(p1, p2) 
+0

О, да, это проблема «я»! –