мой класс - это int, когда я использую его как ошибку атрибута наследования, каково решение? - PullRequest
0 голосов
/ 23 февраля 2019

Код

class Raw:
    def __init__(he,dx=0,dy=0,ax=0,ay=0,rx=1.1,ry=1.1):
        #   Position
        input('Type{0}'.format(type(he)))
        he.x = 0
        he.y = 0
        #   Texture
        he.src = srcNone()
        he.isNoneSrc = 1
        #
        he.dx, he.dy = dx, dy
        #
        he.ax, he.ay = ax, ay

мой класс является "int", когда я использую его как наследование, каково решение? Это код класса, который преобразуется в "int", когда ониспользуется в качестве наследования.

Код класса, который использует этот класс для наследования:

class WithSrc(Raw):
    def __init__(he,src,dx=0,dy=0,ax=0,ay=0):
        print('Type Raw',type(Raw))
        Raw.__init__(dx,dy,ax,ay)
        he.changeTexture(src) #he.src = src

Ошибка:

Traceback (most recent call last):
  File "D:\_Raphaël\code\Rgame code\ProgrammeN1\p1.py", line 47, in <module>
    ecran['Test'] = WithSrc(image.load('Scoeur.png'))
  File "D:\programme\lib\Rgame\PreClass.py", line 75, in __init__
    Raw.__init__(dx,dy,ax,ay)
  File "D:\programme\lib\Rgame\PreClass.py", line 27, in __init__
    he.x = 0
AttributeError: 'int' object has no attribute 'x'

Вывод кода:

Type Raw <class 'type'>
Type<class 'int'>

Это означает, что перед использованием метода init () тип Raw имел тип "тип", затем он преобразуется в тип "int", один из методов init использовать.

Спасибо за помощь извините за английский не очень хорошо, я французский.

1 Ответ

0 голосов
/ 23 февраля 2019

В этом разделе:

Raw.__init__(dx,dy,ax,ay)

Вы звоните Raw.__init__.Но посмотрите, какие аргументы нужны:

def __init__(he,dx=0,dy=0,ax=0,ay=0,rx=1.1,ry=1.1):

* * * * * * * * * * * * * * * * * * * * * * * * * * * he отсутствует, поэтому он эквивалентен:

Raw.__init__(he=dx,dx=dy,dy=ax,ax=ay)

Так что нет, ваш класс не имеетпреобразован в int.Но dx действительно int, и поэтому не имеет атрибута x.Вам нужно добавить he к вашей инициализации:

Raw.__init__(he,dx,dy,ax,ay)
...