スコア (「カウント」) によってインスタンスの位置を示すインスタンス メソッドを作成しようとしています。
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])
その行のどこにも「<」が表示されません...どうすれば修正できますか?