파이썬에서 함수를 전달할 수 있습니까? cmp
선언하기 전에 내 함수를 사용하여 목록을 정렬하고 싶습니다 .
print "\n".join([str(bla) for bla in sorted(mylist, cmp = cmp_configs)])
cmp_configs
호출 후 메소드 정의를 넣도록 코드를 구성했습니다 . 이 오류로 실패합니다.
NameError: name 'cmp_configs' is not defined
cmp_configs
메소드를 사용하기 전에 "선언"하는 방법이 있습니까? 내 코드가 더 깨끗해 보일까요?
일부 사람들은이 문제가 없도록 코드를 재구성해야한다고 말하고 싶어합니다. 그러나 불가피한 경우가있을 수 있습니다 (예 : 일부 재귀 형식을 구현할 때). 이 예제 마음에 들지 않으면, 나는 그것의하는 경우가 있다고 가정 정말 함수를 선언 전달하는 것이 필요합니다.
파이썬에서 함수를 앞으로 선언하는 것이 필요한 경우를 생각해보십시오.
def spam():
if end_condition():
return end_result()
else:
return eggs()
def eggs():
if end_condition():
return end_result()
else:
return spam()
경우 end_condition
와 end_result
이전에 정의되어있다.
코드를 재구성하고 항상 호출 전에 정의를 넣는 유일한 솔루션입니까?