2014-01-26 1 views
0

일부 기본적인 Python 코드로 작업하고 있지만 해결할 수 없었던 문제가 있습니다. 사실, 함수의 힙팁을 변경하고 싶습니다. 완전히 할 수 있습니다.Python helptip change text

모든

먼저, 여기에 (예를 들어) 내 코드입니다 :

def main(arg1,arg2,arg3): 
    #some blabla 
    return 1 

I (예 : IDLE에서)이 함수를 호출하기 시작하면, 난 그냥 얻을하는되도록 표시는 helptip이되는 것 내 함수와 동일한 구문이 정의되어 있습니다 : main(arg1,arg2,arg3).

나는 주 (책임있는 이름, 책임있는 닉네임, 책임있는 전화)와 같은 것을 선호합니다. 이것은 각 인수가 무엇인지 더 잘 표현합니다. 이미 문서화 구현을 시도했지만 이미 두 줄을 함께 사용할 수 있지만 arg1을 사용하여 첫 번째 줄을 제거 할 수는 없습니다 ...

내가 원하는 것을 얻을 수있는 방법이 있는지 누군가가 알 수 있습니까?

+0

. 당신이 다른 곳에서 정의한 수업입니까? 파이썬 변수에는 타입이 없습니다. 가치가 있습니다. –

+0

많은 IDE가 [epydoc] (http://epydoc.sourceforge.net/fields.html)을 지원합니다. docstring에서이 마크 업 언어를 사용하여 복잡한 함수 및 모듈에서도 매개 변수 유형에 대한 경고 및 팁을 얻을 수 있습니다. – Mehdi

답변

0

두 가지 :

  1. 당신, 괜찮아요 명명 된 인수를 원한다면, 그 (것)들을 가진 당신의 기능을 정의하십시오 : def main(name, nickname, phone):; 및
  2. docstring의 경우 형식은 # (설명)이 아니며 """ (여러 줄 문자열)입니다.
  3. 예를 들어

: 이제

def myfunc(name, age, height): 
    """Returns a growth-rate for the person based on age and height.""" 
    return height/age 

읽고 "툴팁"당신이 명명 된 인수를 표시하지 않으려면

(name, age, height) 
Returns a growth-rate for the person based on age and height. 

, 당신은 *args를 사용할 수 있습니다

def myfunc(*args): 
    """Takes three arguments: name, age and height, returns a growth rate.""" 
    name, age, height = args 
    return height/age 

이제 도구 설명 :

(...) 
Takes three arguments: name, age and height, returns a growth rate. 
+0

나는 문서화 문자열에 대한 것을 이미 알고 있었지만 여기에는 문제가되지 않는다. 내 문제는 내 코드에서 코드 이름을 변경하지 않고 좀 더 명확한 인수 이름을 가진 helptip을 가질 수 있기를 원한다는 것입니다. 그리고 가능한지 모르겠습니다. – Numerobis

+0

아니요, 가능하지 않습니다. 툴팁이 자동으로 생성됩니다. 당신은'* args'를 사용할 수 있습니다; 이 옵션으로 내 질문을 편집했지만 여전히 첫 번째 줄을 얻습니다. – jonrsharpe

+0

고마워요, 그게 내가하고 싶은 걸 다뤄 줘요! – Numerobis

0

음, 기본적으로 당신이 원하는대로 할 수 없습니다. 코드에서 매우 긴 변수 이름을 사용하는 경우에도 문서에서 보려는 내용과 일치하도록 함수 프로토 타입을 변경해야합니다.

Python을 사용하면 (암시 적보다 명시적임) 변수 이름을 신중하게 선택해야하므로 명시 적이고 너무 길지 않습니다. 따라서 어느 경우 든 이름 선택이 잘못되었습니다. arg0,arg1,arg2은 아무 의미가 없기 때문에 무섭습니다. Responsible name...은 너무 길기 때문에 (공백을 포함하여 의미가 없다고 말하지도 않습니다).

그리고, 각 인수가 그 인수가 모두 일반적으로, 무엇에 관한 것인지라고하는 문장을 제공하기 위해 문서화 문자열의 일부 : 나는`Responsible` 여기에 뜻이 무엇인지 이해하지

def afunc(foo, bar): 
    """This is a function 
    @param foo this is the first parameter 
    @param bar this is the second paramater 
    """ 
    pass 
+0

그래, 고마워. 내가 원하는 걸 할 수는 없어. Zen of Python에 대해 들었고 대답의 끝 부분에서 설명하는 것은 정확히 내가 풀고 싶은 문제이다 ... 나는 ' 그것을 다루 겠지만, 걱정하지 마세요, 내 args 이름은 arg1이 아닙니다 ... 그들은 그것보다 명백합니다! 답변 해 주셔서 감사합니다. – Numerobis