如何在python类中使用多个功能?

我定义了一个具有名称和年龄属性的python类。我正在尝试打印此类中对象的最早和最长名称。 最旧的可以正常工作,但是要找到最长的名称,我不能将len()和max()一起使用,因为len()接受的参数不止一个。我必须先将名称长度定义为属性,然后再定义最大值。我的代码副本如下。我感谢您的帮助 :)

class NewClass:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.length = len(name)

def Oldest(*args):
    return max(args)

# def Longets(*args):     this doesn't work since len takes one argument only
#     return max(len(args))

def Longest(*args):
    return max(args)

person1 = NewClass('Cindy', 24)
person2 = NewClass('Amy', 28)
person3 = NewClass('fifififi', 27)

print(f'The oldest person is {Oldest(person1.age,person2.age,person3.age)} years old')
print(f'longest name has {Longest(person1.length,person2.length,person3.length)} character')
评论
  • trerum
    trerum 回复

    您可以使用列表理解:

    def Longets(*args):
        return max([len(arg) for arg in args])