Python:将类属性作为数组访问

时间:2019-02-19 22:28:31

标签: python arrays class

最初,我想创建一个具有一些string和float属性的类,其中一个是float格式的时间戳。拥有该类的约10,000个实例的列表,我想使用这些10,000个时间戳,就好像我有一个用于向量数学运算的numpy数组一样:

import random
import time

class myclass:
def __init__(self):

    # some properties
    self.ID=random.random()
    self.text1 = 'sometext'
    self.text2 = 'some other text'
    self.timestamp=time.time()

if __name__ == "__main__":
    for i in range(10):
        mylist.append(myclass())

    # now apply math functions to the timestamps, for example 
    # max([all timestamps]) or sum([all timestamps])

我可以在数组中排一行而不是一个类实例,但是使用类的许多优点(这里未显示)丢失了。

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

使用operator.attrgetter创建时间戳的可调用对象;与实例列表上的map 一起使用;使用summax消耗地图对象。

from operator import attrgetter
tstamp = attrgetter('timestamp')
print(sum(map(tstamp, mylist)))
print(max(map(tstamp, mylist)))