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