gpt4 book ai didi

python - 类方法返回列表/数组

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

从初始化为列表的类调用类方法时,我试图返回一个 numpy 数组。

import numpy as np

class test_object:

def __init__(self, val=1):
self.value = val

@staticmethod
def generate(number=5):

# create list of test_objects
obj = [test_object(val=i) for i in range(number)]

return obj

def powers(self, pow=2):
return self.value**pow


numbers = test_object.generate(number=10)

array = np.zeros(len(numbers))

for i in range(len(numbers)):
array[i] = numbers[i].powers()

print(array)

是否有可能修改类/类方法'powers',它会像这样工作:

array = numbers.powers()

数组初始化和for循环应该在类方法中完成。

最佳答案

这是一个解决方案:

import numpy as np

class test_object():
def __init__(self, val=1):
self.value = val

class test_object_list(list):
def powers(self):
return np.asarray([i.powers() for i in self], dtype=float)

@classmethod
def generate(cls, number=5):
# create list of test_objects
obj = cls.test_object_list([cls(val=i) for i in range(number)])
return obj

def powers(self, pow=2):
return self.value**pow


numbers = test_object.generate(number=10)
array = numbers.powers()
print(array)

请注意,我已将 @staticmethod 替换为 @classmethod,因为它更合适。

关于python - 类方法返回列表/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57507077/

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