java와 같은 정적 바인딩을 사용하는 언어에서 이름은 같지만 매개 변수가 다른 여러 함수를 모두 정의 할 수 있습니다. Python을 배우면서, 지금까지 나는 이것을 "안전 문제"(주로 bool_parameter="False"
)로 생각할 수 없었습니다. 따옴표로 인해 True
으로 해석 될 수 있습니다. 나는 단지 더 조심해야한다고 생각했다.매개 변수 유형에 따라 다른 작업 수행 방법
이제 정적 바인딩의 부족이 단순히 불편한 상황을 발견했습니다. 어떤 조건을 선택하기 위해 필요하지 않기 때문에, 나는이 매우 편리 찾을
def del_item(int i):
# search item with (x == i, *)
# remove this item
def del_item(String s):
# search item with (*, x == s)
# remove this item
:
var = ((1, "foo"), (2, "bar"), (3, "potato"))
한이 (의사 코드 같은 것을 할 수있는 정적 바인딩과 var
에서 항목을 제거하려면이 tupel을 고려하시기 바랍니다 이 코드는 함수 중 하나 또는 둘 다에 과부하를 걸기 쉽게 결정할 수 있기 때문에 오버로드를 쉽게 만듭니다. 파이썬에서 이와 같은 상황을 처리하려고하면 불편을 겪습니다. ns는 타입을 검사하는 if-clause를 좋아한다.
더 좋은 방법이 있습니까?
당신은 항상 클래스에 대해 삭제 작업을 수행 할 수 있으므로 삭제하도록 요청하면 내부에서 특정 삭제가 처리되는 것을 처리합니다. –
이들은 두 개의 별개의 삭제입니다. 첫 번째 요소는 두 번째 인수의 첫 번째 요소를 찾습니다.일반적으로이 삭제 작업은 완전히 다른 상황에서 발생하므로 del_on_first_element 및 del_on_second_element 메소드는 유형 오버 로딩보다 훨씬 명확합니다. – Daniel