데 x.split(y)
의 목록을 반환 항상 1 + x.count(y)
항목은 귀중한 규칙 - 그것은하게 밖으로 @ gnibbler 이미 지적한 것 같이 split
하고 join
서로의 정확한 역관계 (그들은 분명히해야한다로), 또한 정확하게 구분에 가입 한 기록의 모든 종류의 의미를 (매핑 같은 csv
파일 라인 [[문제를 인용 순]에서 선 /etc/group
파일 경로 및 URL)에서 (상대 경로 대 절대 유닉스가, 등)는 로마의 대답은 언급 @로 (수) (예를 들어 쉽게 확인) 기타 등등.
그것을 보는 또 다른 방법은 이득이없이 정보를 창 밖으로 던져서는 안된다는 것입니다. x.split(y)
와 동등하게 만들면 무엇을 얻을 수 x.strip(y).split(y)
있습니까? 아무것도 물론 - 첫 번째 양식이 임의로 두 번째를 의미하는 것으로 간주 된 경우이 때의 당신이 무슨 뜻인지,하지만, 당신이해야 할 일이 많이 줄 때 두 번째 양식을 사용하기 쉽게하지 않는 첫 번째 원하는 ( 이전 단락에서 지적했듯이 드물지 않습니다.)
그러나 실제로 수학적 규칙 성 측면에서 생각하는 것은 통과 가능한 API를 설계하도록 스스로를 가르 칠 수있는 가장 간단하고 일반적인 방법입니다. 다른 예를 들자면하기 위해 매우 중요합니다 그 유효한을위한 x
과 y
x == x[:y] + x[y:]
- 슬라이싱의 극단적가 왜 즉시 나타내는 한다 제외. 당신이 공식화 할 수있는 불변 적 주장이 더 간단할수록, 그 결과 의미론은 당신이 실제 생활에서 필요로하는 것일 가능성이 더 높습니다. 수학이 우주를 다루는 데 매우 유용하다는 신비로운 사실의 일부입니다.
split
선행 및 후행 구분 기호가 특수한 경우의 방언에 대한 불변을 공식화 해보십시오 . 반대 예 : isspace
최대한 간단하지 않은 문자열 메서드 x.isspace()
는 다음과 같습니다. x and all(c in string.whitespace for c in x)
바보 같은 선행 x and
이 코딩을 자주 찾는 이유입니다. not x or x.isspace()
, 문자열 메소드 로 설계 되어야 하는 단순함으로 돌아 가기 위해 is...
(빈 문자열은 "당신이 원하는 모든 것입니다.-거리의 사람 말과는 달리, 아마도 [[빈 세트, 0과 같은" & c, 항상 대부분의 사람들을 혼란스럽게했습니다 ;-)]], 그러나 명백한 잘 정제 된 수학적 상식에 완전히 부합합니다 !-).