2017-01-05 1 views
2

이전 함수가 있다고 가정하면 oldFunction(first, second, third)입니다. 그리고 모든 주장은 필수적입니다. 나는 '두 번째'인수의 사용을 중단하고 프로젝트의 코드를 변경하지 않기를 원합니다.이전 함수를 래핑하여보다 적은 인수로 새 함수 작성

그래서 첫 번째와 세 번째 인수 만 사용하여 정확히 동일한 기능을 수행하는 새 함수를 만들고 싶습니다.

그래서 새로운 함수를 래퍼 (wrapper)로 기존 함수로 래핑하는 방법을 생각해 보았습니다. 내가 어떻게 그럴 수 있니? 따라서 두 개의 인수 만 사용하여 새 함수를 사용할 수 있지만 이전 이름에서 호출하면 새 함수가 호출됩니다 (래핑 되었기 때문에).

어떻게 그렇게 할 수 있습니까?

+0

당신은 래퍼 내에서'oldFunction'를 호출하는 경우에 문제가 'oldFunction'? – Chinny84

답변

2

당신은 newFunction(x,y) 당신이로 oldFunction을 다시 정의 할 수 있습니다 정의하면 : 아마도 ''초 인수의 출력을 수정하기 때문에

def oldFunction(x,y,z): 
    return newFunction(x,z) 
+0

감사! 그게 내가 원했던거야 :) @ john-coleman –

+0

어떻게 코드를 변경하지 않습니까? 이것은 제 의견으로는 꽤 나쁜 코딩입니다. 이것은 말하기를, 나는 이것이 OP 문제를 해결한다는 것에 동의한다. +1 – Chinny84

+1

@ Chinny84 'oldFunction'을 호출하는 코드의 기존 섹션을 그대로 둘 수 있습니다. 분명히 코드의 일부는 변경되지만, 오직 1) newFunction의 정의가 추가되고 2) oldFunction이 재정의됩니다. OP는 "내 프로젝트의 모든 부분에서 코드를 변경하지 마십시오"라는 의미에서 조금 더 명확 해졌습니다. 나는 의도 한 의미를 "프로젝트에서 다른 곳의 코드를 변경하지 말 것"이라고 읽었다. –

관련 문제