def my_method(self):
print self.my_field * 2
다른 매개 변수를 추가하여 다른 경우 사용할 수 있도록하고 싶습니다. 표현식은 self.my_field
대신 self.my_other_field
또는 self.my_field + 1
일 수 있습니다. self.my_field를 선택하고 리 팩터> 추출> 매개 변수를 수행합니다. "선택한 요소를 사용하여 리팩토링을 수행 할 수 없습니다"라는 오류 메시지가 나타납니다.PyCharm 추출 매개 변수가 일반적으로 작동하지 않습니다. "선택한 요소를 사용하여 리팩토링을 수행 할 수 없습니다."
my_method가 self.my_method()
또는 other_obj.my_method()
과 같이 호출되므로 리팩터링이 가능해야합니다. 이 값을 self.my_method(self.my_field)
또는 other_obj.my_method(other_obj.my_field)
으로 변경할 수 있습니다.
일반적으로 표현식이 상수처럼 매우 간단 할 때만 추출 매개 변수 기능을 사용할 수있었습니다. 기존 매개 변수의 값에 따라식이면 작동하지 않습니다. 나는 self
이 기존 매개 변수의 특수한 경우라고 생각합니다. 이것은 추출 매개 변수의 한계입니까, 아니면 제가 잘못하고 있습니까?
이 메소드는'def my_method (self, param) : print param * 2'처럼 정의되고'self.my_method()'에 대한 호출은'self.my_method (self. my_field)'. – morningstar
알겠습니다. 알겠습니다. 리팩토링 도구를 사용하여이 작업을 수행 할 수있었습니다 (** Change Signature ** (https://www.jetbrains.com/help/pycharm/2016.1/change-signature.html)). 매개 변수를 기존의 메소드 및 리팩토링 자의 기존 호출에 포함시켜이를 포함시킵니다. –
그래, 알았어. 기본값에 사용할 식을 변경 서명 대화 상자에 복사 한 다음 해당 식을 새 매개 변수의 이름으로 바꿔야하기 때문에 좀 더 수동입니다. 그러나 노력에 감사드립니다. – morningstar