2013-08-22 8 views
0

다른 값을 전달하지 않는 한이 메서드가 특정 값을 업데이트하려고합니다. 대신 다른 값을 전달해야합니다. 여기에 내가 뭘 원하는지의 예 : "자기가 정의되지 않은"내가 할메소드의 기본 매개 변수는 어떻게 설정합니까?

def update_t(self,t=self.t): 
    "If nothing is passed, then the default parameter is the attribute self.t" 
    t=t+1 

이 관련 질문 :이 값이 업데이트되기 때문에 default value of parameter as result of instance method

...하지만, 나는 그것을 가질 수 없다. 나는 또한 오류를 줄 것이기 때문에 객체가 될 수 없다 (객체와 int를 추가 할 수 없다). 어떤 아이디어? 감사.

+0

함수 호출이이 방식으로 작동하지 않습니다. 변수 나 속성을 전달할 수 없으며 함수의 인수에 대한 할당이 변수 나 속성 또는 목록 항목 또는 함수가 호출 된 항목에 영향을줍니다. – user2357112

답변

2

을 해결할 개체를 사용하십시오. 예 : None. 이 객체가 __iadd__() 방법이없는 경우 회복 될 수있는 로컬 이름 이후에 전달 된 값을 변경할 수는

def update_t(self, t=None): 
    "If nothing is passed, then the default parameter is the attribute self.t" 
    if t is None: 
    self.t += 1 
    else: 
    t += 1 

참고.

관련 문제