2012-04-03 3 views
1

파이썬 인터프리터에 help('string')을 입력하면 문자열 클래스에 대한 정보를 얻을 수 있습니다. 여기에 upper()이 기능으로 표시됩니다. 그러나 대신 "hi".upper()과 같은 메서드로만 호출 할 수 있습니다.
그래서 모든 메소드가 빌트인 모듈의 docstring에 함수로 표시 될 것이라고 가정 할 수 있습니다. 그러나 help('list')을 수행하면 목록 클래스의 메소드가 docstrings의 메소드로 표시됩니다!
왜 이렇게됩니까? doctrings을 쓴 사람이 일관성이 없거나 다른 사람들이 그것을 썼기 때문에? 또는이 방법들 (docstring의 'methods'에 비해 'functions'라고 불리는 것)은 실제로 다른 속성을 가집니까?python 도움말 ('string')과 도움말 (list)의 불일치?

답변

3

help('string')을 검색 할 때 string 모듈의 문서 문자열을 찾고있었습니다. help(str) 또는 help('str')을 입력하면 str 유형의 문서화 문구가 표시되며 여기에 upper이 표시됩니다.

>>> upper('hi') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'upper' is not defined 
>>> 'hi'.upper() # method from the str type 
'HI' 
>>> from string import upper 
>>> upper('hi') # function from the string module 
'HI' 
+0

Thnx. 좋습니다, 그래서 str은 모듈에 정의 된 클래스의 이름입니다. string은 모듈의 이름입니다. 왜 그들은 ____builtin____ 모듈 안에 이미 정의 된 클래스가있을 때 다른 문자열 모듈을 만들었습니까? – Bentley4

+1

@ Bentley4'string' 모듈은'str' 클래스 안에서별로 이해하지 못하는 문자열 처리에 많은 도움이됩니다. 다음과 같은 항목 : 상수 (숫자, 대문자), 템플릿, 포맷터 ... 자세한 정보 [here] (http://docs.python.org/library/string.html) – juliomalegria

0

'string'string입니다. 그래서 'list'

lists에 대한 유사한 결과를 얻을 당신은 help('str')하지 help('string') 할 의미 help([])

+2

아니요 ... 목록에 대한 도움을 얻으려면'help ('list')'를 쓰면됩니다. –

+1

(시도해주세요) –

+1

와우 ... 나는 그것을 몰랐습니다. 'x = 'list '' 그리고 나서'help (x)'. 그것은 예기치 않은 행동입니다! – veiset

2

시도하는 것입니다. str은 유형이고, string은 문자열 작업을위한 함수를 제공하는 모듈입니다.

1

당신은 해당 인스턴스에 대한 도움말을 호출 한 다음 해당 개체의 인스턴스를 생성하고있다 : 당신이 여기에서 볼 수 있듯이

string 모듈에서 기능 upper 실제로 기능하지 않는 방법이다.

그래서 이러한 모든 작업 :

help(1) 
help({}) 
help([]) 
help('') 
help(dir) 
help(help) 

도움말은 해당 인스턴스에 대한 문서화 문자열을 잡고, 당신에게 다시 제공합니다. 자신의 개체를 만들 때 유용한 문서 문자열 또는 원하는 것을 넣을 수 있습니다.

1

당신이 보는 것과 아무 문제가 없습니다.

>>> help('string') 

string 모듈 설명서가 표시됩니다.

>>> import string 
>>> string.upper('hello') 
'hello' 

나는이 upper 당신이 할 경우 호출이 동일하다는 것을 말하고 싶지만 :

>>> 'hello'.upper() 

하지만 확실하지 않다가 내부 upper 기능처럼 그리고 그것은 보인다.

문자열 ''은 형식이 아닌 str 형식입니다.

>>> help('str') 

그리고 여기 당신이 너무 str.upper 방법을 볼 수 있습니다 : 이것은 당신이 아마 찾고있는 것을 의미한다.