gpt4 book ai didi

python - 类 : __new__ and __init__ in inherited class in Python

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:26 26 4
gpt4 key购买 nike

我有这样一个类:

class FloatArray():
def __init__(self):
self.a = 1.5

def __new__( cls, value ):
data = (c_float * value)()
return data

array_1 = FloatArray(9)
print(array_1)
>>>> __main__.c_float_Array_9 object at 0x102228c80>

现在我想做一个FloatArray4类继承自FloatArray类并且可以调用值a。

这是第二个类的代码。

class FloatArray4( FloatArray ):
def __init__(self):
super(FloatArray, self).__init__()

def printValue( self ):
print(self.a)

我有问题:

首先,我必须调用我不想要的 array_2 = FloatArray4(4),我希望它像这样调用 array_2 = FloatArray4() , 但我不知道如何。

其次,当我尝试调用 array_2.printValue() 时出现错误:AttributeError: 'c_float_Array_4' object has no attribute 'printValue'

有人能帮忙吗?

谢谢。

最佳答案

您的 __new__() 正在返回一个完全不相关的类的实例,这是一件极不寻常的事情。 (老实说,我什至不确定为什么允许这样做。)您的 __init__() 永远不会被调用,并且您的方法或属性都不可用,因为生成的对象在任何意义上都不是实例你类的。

关于python - 类 : __new__ and __init__ in inherited class in Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45618473/

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