2011-06-10 2 views

답변

8

짧은 대답 : 아니오. 긴 대답 : readline 지원을 활성화 한 경우 위쪽 화살표를 사용하여 줄 단위로 "재정의"할 수 있습니다.

+0

함수를 몇 번 수정할 때 환경에서 정의 된 것이 실제로는 없으므로 명령 기록을 사용하는 것이 치명적으로 불편합니다. 환경 기능 코드를 인쇄하는 방법이 있습니까? – Leonid

+0

모든 이름은 IDLE에서 사용되는 대화식 인터프리터의 전역 이름 공간 내에서 고유하므로 모든 환경 변수가 정의 된 이름이어야합니다. 당신은 환경 기능 코드를 인쇄하기위한 어웨이의 의미를 명확히 할 수 있습니까? 파이썬 소스 코드를 의미합니까? – jathanism

+0

예, 함수 소스 코드를 인쇄하십시오. – Leonid

2

파이썬 REPL을 상당히 강화할 수 있습니다. calling your favorite editor도 있습니다. 마우스를 지원하는 터미널 (X에서와 같이)이나 화면을 사용하는 경우 마지막 함수 정의까지 스크롤하고 소스를 복사 한 다음 편집기를 호출하여 붙여 넣기하면됩니다. 취향에 맞게 편집하고 실행하십시오.

2

나는이 일을 스스로 할 수있는 방법을 찾고 있었지만 불가능하다고 슬프지만 지금 사용하고있는 빠른 해결 방법을 공유 할 것입니다.

myFunction()을 콘솔에 정의하는 대신 myFile.py 파일에 정의합니다. 콘솔에서 그때 가져옵니다

import myFile 
from imp import reload 
그때, (긴 파일 이름의 경우) 내 함수에 대한 포인터를 만들기 때문에 같은

:

def pMyFunction(): 
    return myFile.myFunction() 

내가하고 myFunction을 개정 할 때마다, 나는 그것을 할 myFile.py에서 다음 모듈을 다시로드하십시오.

reload(myFile) 

너무 멋져 보이지는 않지만 저에게 도움이됩니다.

1

당신은 현재 소스 코드를 얻을 수있는 검사 모듈을 사용하고 기능을 다시 정의 할 수 있습니다 : 당신은 심지어 그것을 변경하고 함수를 다시 정의 exec를 사용하여 파이썬 문자열 방법을 사용할 수

from inspect import getsource 

def helloworld(): 
    print('Hello, World!') 

print(getsource(helloworld)) 

합니다. 그러나, 나는이 나쁜 스타일을 고려할 것이다.

from functools import getsource 


def helloworld(): 
    print('Hello, World!') 

old = getsource(helloworld) 
new = old.replace('Hello', 'Cheers') 
exec(new) 
helloworld()