Python 对类对象的数组进行操作的方法是否可以使用数组方法?

Python 对类对象的数组进行操作的方法是否可以使用数组方法?,python,arrays,class,methods,Python,Arrays,Class,Methods,我是新来的,Python也是新来的。我的同事中有一些C/C++。我正在做udemy的课程,我想知道是否有更好的想法,可以基于一个值找到类对象数组的元素。课程的任务是找到“最老的猫”。解决方案是不使用列表/数组,但我想知道如何对对象数组进行操作,如果有比我的静态方法GetOlests更好的选择,因为对我来说,我似乎在试图“欺骗”python 非常感谢 我认为这个例子可以帮助你找到更好的方法 类别类别: 定义初始(自我、姓名、年龄): self.name=名称 self.age=年龄 def获取_详

我是新来的,Python也是新来的。我的同事中有一些C/C++。我正在做udemy的课程,我想知道是否有更好的想法,可以基于一个值找到类对象数组的元素。课程的任务是找到“最老的猫”。解决方案是不使用列表/数组,但我想知道如何对对象数组进行操作,如果有比我的静态方法GetOlests更好的选择,因为对我来说,我似乎在试图“欺骗”python


非常感谢

我认为这个例子可以帮助你找到更好的方法

类别类别:
定义初始(自我、姓名、年龄):
self.name=名称
self.age=年龄
def获取_详细信息(自我):
返回self.name、self.age
猫=[猫(“zimka”,5),
猫(“oczko”,10),
类别(“kotek”,1),
猫(“爱德华”,4)]
结果=[]
对于猫中猫:
(姓名、年龄)=类别获取详细信息()
结果。追加((姓名、年龄))
打印(已排序(结果,键=λx:-x[1]))

您可以使用@classmethod,因此该函数将是静态的,并将该类作为第一个参数作为默认值,同时将_Instances变量设置为静态

当一个新的Cat被实例化时,它将被添加到_Instances列表中

class Cat:
    _Instances=[]

    @classmethod
    def getoldest(cls):
        _Instance = max(cls._Instances,key=lambda Instance: Instance.age)
        return ("Oldest {} is {}, and {} years old.".format(cls.__name__,_Instance.name,_Instance.age))

    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.__class__._Instances.append(self)

Cat("a",1)
Cat("b",2)
Cat("c",3)
Cat("d",4)
print(Cat.getoldest())

更直接的方法是在cat对象列表上使用
max()
oldest=max(kotki3,key=lambda x:x.age)
术语说明:这是一个列表,而不是一个数组。注意,列表中没有“类对象”,类对象就是类本身(在Python中是第一类对象,在Python中几乎所有东西都是对象)。列表中有您的类的实例。
class Cat:
    _Instances=[]

    @classmethod
    def getoldest(cls):
        _Instance = max(cls._Instances,key=lambda Instance: Instance.age)
        return ("Oldest {} is {}, and {} years old.".format(cls.__name__,_Instance.name,_Instance.age))

    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.__class__._Instances.append(self)

Cat("a",1)
Cat("b",2)
Cat("c",3)
Cat("d",4)
print(Cat.getoldest())