gpt4 book ai didi

python - Python 面向对象中的数组

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:27 25 4
gpt4 key购买 nike

我是面向对象编程的新手。我正在审查代码,有一部分我很难理解。如果您能帮助我,我将不胜感激。

我有一个代码,其中有 numpy 数组,然后似乎“数组”被用作 numpy 数组的属性或方法,但我不确定它是如何工作的。以下是我的语法:

self.PromotionIdData.array()[self.ID,t] = ...

PromotionIdData 是一个二维 numpy 数组。但我无法为自己生成类似的语法。这是我的代码:

import numpy as np
from array import *
class test:
def __init__ (self):
self.price=np.array([10,20,30])
self.cost=20
self.volum=2

a=test()
print getattr(a,'price').array[1]

但是我的代码不起作用。我收到错误消息,指示“数组”不是属性。

谢谢

最佳答案

您不需要导入array,因为它是一个numpy类,并且您已经导入了numpy(实际上您使用np.array调用数组)。

一旦有了 numpy 数组对象,您就可以使用方括号访问元素,而无需任何附加注释:

a = np.array([1,2,3,4])
print a[1]

此外,要访问类的属性,您只需要使用点语法,我认为您的测试应该如下所示:

print a.price[1]

(OP澄清后编辑)

如果您希望能够在类中调用array(),您需要定义一个返回所需属性的数组方法:

class test():
def __init__(self):
self.price=np.array([10,20,30])
self.cost=20
self.volum=2

def array(self):
return self.price

然后您可以执行a.array()[1](请注意,您不再需要显式指示价格属性)。对于这种类型的结构,您可能需要查看 getters and setters 的概念。

关于python - Python 面向对象中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20250583/

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