Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:以数组形式访问类属性_Python_Arrays_Class - Fatal编程技术网

Python:以数组形式访问类属性

Python:以数组形式访问类属性,python,arrays,class,Python,Arrays,Class,最初,我想创建一个具有一些字符串和浮点属性的类,其中一个是浮点格式的时间戳。拥有该类的~10000个实例的列表,我想使用这些10000个时间戳,就好像我有一个numpy数组用于向量的数学运算: import random import time class myclass: def __init__(self): # some properties self.ID=random.random() self.text1 = 'sometext' self.tex

最初,我想创建一个具有一些字符串和浮点属性的类,其中一个是浮点格式的时间戳。拥有该类的~10000个实例的列表,我想使用这些10000个时间戳,就好像我有一个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])
我可以在数组中有一行而不是类实例,但是使用类的许多优点(这里没有显示)都失去了


你能帮我吗

使用
操作符.attrgetter
为时间戳创建一个可调用的;与实例列表上的
map
一起使用;使用
sum
max
使用贴图对象

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

使用
operator.attrgetter
创建可调用的时间戳;与实例列表上的
map
一起使用;使用
sum
max
使用贴图对象

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

你必须自己实现这个接口你试过什么了吗?出了什么问题?这可以像
max(mylist中x的x.timestamp)
那样简单地完成。您必须自己实现这个接口。您尝试了什么吗?出了什么问题?这可以像
max(mylist中x的x.timestamp)
那样简单地完成。这比
max(map(lambda x:x.timestamp,mylist))有什么优势吗?
我想说,唯一的优势是您可以定义一次可调用的名称,并将其分配给一个有意义的名称,然后在模块中的任何地方使用它。这就是我喜欢使用
操作符的原因。不管是什么
,它比
max(map(lambda x:x.timestamp,mylist))有什么优势吗?
?我想说,唯一的优势是您可以定义一次可调用的名称,并将其分配给一个有意义的名称,然后在模块中的任何位置使用它。这就是我喜欢使用
操作符的原因。不管是什么。