Такой вопрос — вот есть, предположим, класс: class test:
def __init__(self, name, strenght, agility):
self.name = name
self.str = strenght
self.agi = agility далее следующий код: $Dima = test("Dima", 5, 2)
$Katya = test("Katya", 2, 5)
$Actors = [Dima, Katya] и, теперь главное, функция сортировки (да-да, я знаю, что «пузырьки» отстой :lol: ) в зависимости от параметра для сравнения, нечто в таком духе: def bubble_sort (inlist, param):
for i in range (0, len(inlist)-1):
for j in range (0, len(inlist)-1-i):
if inlist[j].param > inlist[j+1].param:
inlist[j], inlist[j+1] = inlist[j+1], inlist[j]
return inlist
ну и дальше нужен результат, примерно так: $champions_str = bubble_sort(Actors, str)
$champions_agi = bubble_sort(Actors, agi) Этот код не работает, т.к. не получается таким способом в функцию bubble_sort передать нужный параметр для сравнения (param). Собственно, вопрос, как переработать функцию так, чтобы она понимала нужный параметр? Есть, конечно, извращенный вариант: def bubble_sort (inlist, param):
if param == "str":
for i in range (0, len(inlist)-1):
for j in range (0, len(inlist)-1-i):
if inlist[j].str > inlist[j+1].str:
inlist[j], inlist[j+1] = inlist[j+1], inlist[j]
return inlist и далее: $champions_str = bubble_sort(Actors, "str") ,но это именно что извращение и дикие костыли. :unsure: