gpt4 book ai didi

python - 当我将类用作继承属性时,我的类出现 "int"错误,解决方案是什么?

转载 作者:行者123 更新时间:2023-12-01 08:18:32 24 4
gpt4 key购买 nike

代码是

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”,然后将其转换为 init 方法使用的“int”类型。

感谢您的帮助,抱歉英语不太好,我是法国人。

最佳答案

在本节中:

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)

关于python - 当我将类用作继承属性时,我的类出现 "int"错误,解决方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54841247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com