2015-01-15 2 views
2

코드 블록을 선택하고 리팩터링> 추출> 메소드를 선택할 때마다 매개 변수 필드에 "표시 할 항목이 없습니다"라는 팝업 창이 나타납니다. PyCharm의 리팩터링 : 메소드를 추출하는 방법?

a = 1 
b = 2 
c = a + b 

print(c) 

내가 줄 C = A + B을 선택하고 리팩터링에게이> 추출> 방법을 선택합니다 다음 프로그램을 고려하십시오. 적어도 b을 포함하도록 팝업 상자 매개 변수 필드가 예상되었지만 "표시하지 않음". 이게 어떻게 작동할까요?

the doc section Extract Method의 예가 실제로 작동합니까? "After"에 도착하기 위해 "Before"에서 선택된 것은 무엇입니까? 아무 D는 "이전"에 없다, 그래서 오타가 의심 ...

[OS에 PyCharm 4.04 X 10.9.5]

답변

2

당신이 인용 예는 클래스의 컨텍스트에서 수행된다. 이 Pycharm는 다음에 더 의존 보이기 때문에 그것은, 비록 다른 결과를 가져올 것 10.7

enter image description here

는 "스크립트"의 맥락에서 같은 동작 OS X에 Pycharm 4.0.4와 나를 위해 잘 작동 리팩토링을 수락했다면 이미 깨닫지 못했을 것입니다.

a = 1 
b = 2 

def method_name(): 
    global c 
    c = a + b 

method_name() 
print(c) 

이 경우 반드시 유용하지는 않지만 작동합니다.

마지막으로, 당신이 언급 d 변수 내가이이 문서 페이지의 시점하지 동의 아마도 피할한다

math.sqrt(b**2 - 4*a*c) 

에서 다른 리팩토링을 사용하여 추출 된 것으로 보인다.