필자는 함수가 문자열이나 list-of-string 중 하나를 입력으로 받아들이고 동일한 형식을 반환하기를 원하는 함수를 작성하고 있습니다.파이썬 "문자열 또는 문자열 목록"형식 규칙?
나는 이것에 대한 몇 가지 접근법을 생각해 보았지만, 둘 다 서투른 것처럼 보인다. 각 개념 함수에 대해 다음과 같이 쓸 수 있습니다.
- 문자열과 문자열 목록에 대한 별도의 함수입니다. 그러나이를 위해서는 호출 코드가 변수의 유형을 알고 적절한 함수를 선택해야합니다.
- 'isinstance (inputarg, str) :'을 사용하여 입력 유형을 감지하여 수행 할 작업을 결정하는 함수는 하나뿐입니다. 적어도 호출자 대신 라이브러리 안의 여러 선택 항목을 숨 깁니다.
하지만 제가 간과했던 좀 더 우아한 접근 방식이나 숙어가 있는지 궁금합니다.
설명 :이 두 가지 솔루션 중 두 번째는 문자열 또는 list-of-string을 허용 (및 반환)하는 정도에 다형성이있는 단일 함수를 만드는 것이 훨씬 더 좋습니다. 그러나이 경우에도 isinstance()
을 기반으로하는 전환은 아마도 더 나은 대안을 가진 부끄러운 것처럼 보입니다.
단일 값을 이러한 값의 시퀀스로 취급하는 경우는 드뭅니다.보다 구체적인 예를 제공 할 수 있습니까? – user2864740
문자열의 목록이 단일 문자열에 대해 사용 된 논리를 목록의 각 요소에 적용하는 것 이외의 다른 작업을 수행합니까? 아마도 결과 값 목록을 반환 할 수 있습니까? – SingleNegationElimination
완전하기 만하면 두 개의 args (각 유형 중 하나)를 사용하고 None이 아닌 것을 사용하는 함수를 가질 수 있습니다. 그러나 나는 그것이 "우아한"테스트에 실패했다고 생각합니다. :-) 예상되는 사용법에 따라, varargs가 합리적 일 수 있습니다. 나는 두 가지 접근 방식 모두를 좋아합니다. 메소드의 이름을 지정하고 args를 멋지게 지정하십시오. –