0

我正在尝试创建一个实例方法,通过它的分数('count')给我一个 istance 的位置:

def ordinal_inator(num):
    last = int(str(num)[-1])
    if 4 <= num <= 20:
        suffix = 'th'
    elif last == 1:
        suffix = 'st'
    elif last == 2:
        suffix = 'nd'
    elif last == 3:
        suffix = 'rd'
    else:
        suffix = 'th'

    return num + suffix


class Cal:
    count = 0
    member_list = list()

    def __init__(self, name):
        if name not in Cal.member_list:
            Cal.member_list.append(name)
        self.count += 1

    def positione(self):
        members = dict()
        for member in Cal.member_list:
            members[member] = member.count
        sorted_members = sorted(members.items(), key=lambda x: x[1])
        cardinal_position = sorted_members.index(self)
        ordinal_position = ordinal_inator(cardinal_position)
        return ordinal_position


for i in range(3):
    gino = Cal('gino')
for j in range(2):
    nono = Cal('nono')
nina = Cal('nina')

print(gino.positione())

如果我运行它,python 会给我一个错误:

TypeError:“builtin_function_or_method”和“builtin_function_or_method”实例之间不支持“<”

在第 31 行

sorted_members = sorted(members.items(), key=lambda x: x[1])

我在该行的任何地方都看不到“<”...我该如何解决?

4

0 回答 0