gpt4 book ai didi

Python 创建一个类的多个实例

转载 作者:太空宇宙 更新时间:2023-11-03 15:44:40 24 4
gpt4 key购买 nike

我正在尝试创建一个 NumPy 对象数组,如下所示...

import numpy as np

class Pixel:
def __init__(self):
self.r = 0
self.g = 0
self.b = 0

class Image:
def __init__(self):
self.pixels = np.full((4, 4), Pixel())

if __name__ == '__main__':
image = Image()
print(image.pixels)

输出是...

[[<__main__.Pixel object at 0x02A92F70>
<__main__.Pixel object at 0x02A92F70>]
[<__main__.Pixel object at 0x02A92F70>
<__main__.Pixel object at 0x02A92F70>]]

这似乎创建了同一对象的数组。我的问题是如何为每个像素使用不同的对象初始化数组?

亲切的问候

最佳答案

您可以使用 np.array 函数并从标准 python 列表中初始化它,如下所示:

class Image:
def __init__(self):
self.pixels = np.array([Pixel() for i in range(2 * 2)]).reshape([2, 2])

结果如下:

[[<__main__.Pixel object at 0x00000218B89F6438>
<__main__.Pixel object at 0x00000218B89F64A8>]
[<__main__.Pixel object at 0x00000218B89F4D68>
<__main__.Pixel object at 0x00000218B89F43C8>]]

如您所见,它们不是同一个对象。

请注意,它不会影响您的时间复杂度,因为在任何情况下您都需要初始化 O(n) 对象。

关于Python 创建一个类的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50722162/

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