2009-10-14 2 views
0

제목에 대한 더 나은 표현을 생각할 수 없습니다. 그 질문에 대한 대답은 all_tasks_done라는 큐 클래스의 속성을 사용 Add timeout argument to python's Queue.join()파이썬 라이브러리의 내부 작업에 대한 문서를 어디에서 찾을 수 있습니까?

에 인스턴스에 대한 답변을 참조하십시오 (실수로 원래의 게시물에 여기 join_with_timeout를 썼다).

그러나 http://docs.python.org/library/queue.html#module-Queue에는 그 속성이 언급되어 있지 않습니다. 예를 들어 하위 클래스 Queue을 원하면 소스 코드를 읽는 것 외에 내부 작업에 대한 설명서를 찾을 수 있습니까?

편집 : 이 질문에 대한 답변으로 소스를 읽는 것이 가장 좋습니다.

내가 파이썬을 사랑으로, 여전히 자연 언어가 아닙니다, 그리고 영어 독서하는 소스 코드를 읽는 것보다 쉽게 ​​
  1. 만큼
  2. 그것은 어렵다 : 나는 내 문제 (들)을 설명하려고합니다 예를 들어 "이 변수는 get() 또는 put()"호출 전에 잠글 수 있어야합니다. 변수에 주석이 달린 경우 소스 코드가 아닌 영어를 다시 읽으므로 원본이 아닌 문서 문서에 넣으십시오.
  3. (이것은 IMO에서 가장 중요한 이유입니다.) 문서에 있어야 할 내용과 거의 임의로 만들어서는 안되는 것을 결정한 것 같습니다. all_tasks_done을 언급하지 말아야 할 충분한 이유가 있습니까? ?
+5

정의에 의해 문서화되지 않은 경우 소스를 읽지 않고도 문서를 찾을 수 없습니다. 공식 문서 밖에서 뭔가를 발견 할 수도 있지만 어딘가에 게시되면 문서화되지 않았습니까? –

+2

문서화되지 않은 내부 작동이 향후 변경 될 수 있습니다. –

답변

2

Alex Martelli의 Python in a Nutshell (제 2 판)을보고 있습니다. 344 페이지에서 "서브 클래스로 클래스 대기열 사용자 정의"절이 있습니다. 단 두 개 단락이지만 "join_with_timeout"하는 방법에 대해서는 언급하지 않습니다.

나는 파이썬 쿡북도 확인했다. 큐 모듈의 "all_tasks_done"에 아무 것도 없다.

일반적으로 두 클래스는 내장 클래스 나 모듈을 사용하여 특수한 작업을 수행하고 있는지 확인하기에 좋은 장소입니다.

하지만 서브 클래 싱이 여기에있는 문제라고 생각합니다. 수퍼 클래스의 구현 세부 사항에 따라 다릅니다.언급 한 다른 글타래를 보면 누군가가 a solution that doesn't involve subclassing으로 나타났습니다. 그 해결책은 내게 맞는 것 같습니다.

2

나는 당신이 source code을 읽지 않으려한다고 말했지만 그 이유는 무엇입니까? 그것 :

  • 이해하기 쉽습니다;
  • Queue이 어떻게 작동하는지에 대한 확실한 참고 자료입니다.

예제 (서브 클래 싱 Queue)는 어쨌든 내부 작동을 알 필요가 없습니다. 그들이 바뀌면 어떡하지? Queue의 하위 클래스는 Queue의 인터페이스 나 관찰 가능한 동작이 변경되지 않은 경우에도 중단 될 수 있습니다.

+0

글쎄, 나에게 그것은 옳은 생각이 들지 않는다. 단지 당신이 소스 코드를 읽었을 때 어떤 과정에 어떻게 연결되는지 이해하는 것이 이상하게 보인다. 나는 좋은 문서가 소스 코드 없이도 이용 가능해야한다고 생각한다. 가독성 측면에서만 좋은 문서가 소스 코드보다 낫다고 생각합니다. – olamundo

+2

소스를 읽으십시오. 그런 다음 Python 문서에 패치를 제공하여 Queue.join_with_timeout이 어떻게 작동하는지 설명합니다. – codeape

+2

@noam : 소스를 읽는 데 이상한 점이 있습니다. 그것이 파이썬이 인기있는 이유입니다. 출처는 모든 질문에 답합니다. 모호하지 않게. 그리고 - 보너스! - Pythonsource는 읽기 쉽도록 설계되었습니다. –

7

이 문제는 파이썬 라이브러리에만 국한되지 않습니다. 문서를 읽었을 때 여전히 원본을 살펴볼 가치가 있습니다.

+4

+1 : 루크를 사용합니다. –

2

출처 Luke를 사용하십시오.

+0

웃긴 :)하지만 매우 자세하지 ... – olamundo

관련 문제