代码是
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的类型为“ type”,然后将其转换为类型为“ int”的类型,该方法将使用 init 的方法。< / p>
感谢您对英语不太好而抱歉,我是法语。
答案 0 :(得分:1)
在本节中:
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
,因此没有attr x
。您需要将he
添加到初始化中:
Raw.__init__(he,dx,dy,ax,ay)