내장 연산자에 해당하는 함수집합을 내보냄
from operator import itemgetter
와 같은 형식으로 이용
itemgetter : sorted와 같은 함수의 key 매개변수에 적용하여 정렬
코드 출처 : https://wikidocs.net/109327 (점프 투 파이썬)
from operator import itemgetter
students = [
("jane", 22, 'A'),
("dave", 32, 'B'),
("sally", 17, 'B'),
]
# itemgetter에 1을 사용하여 나이순으로 정렬된다.
result = sorted(students, key=itemgetter(1))
print(result)
[('sally', 17, 'B'), ('jane', 22, 'A'), ('dave', 32, 'B')]
from operator import attrgetter
class Student:
def __init__(self, name, age, grade):
self.name = name
self.age = age
self.grade = grade
students = [
Student('jane', 22, 'A'),
Student('dave', 32, 'B'),
Student('sally', 17, 'B'),
]
# age 속성으로 정렬된다.
result = sorted(students, key=attrgetter('age'))
print(result)
[{'name': 'sally', 'age': 17, 'grade': 'B'}, {'name': 'jane', 'age': 22, 'grade': 'A'}, {'name': 'dave', 'age': 32, 'grade': 'B'}]
# methodcaller의 구성
# name 메서드를 호출하는 객체를 반환한다.
def methodcaller(name, /, *args, **kwargs):
def caller(obj):
return getattr(obj, name)(*args, **kwargs)
return caller