2014-05-12 7 views
0

기존 클래스의 생성자에 새 멤버를 추가하려고합니다 : .Python이 새 클래스 멤버를 인식하지 못합니다.

self._path_payment = np.zeros((4, self._parent._simulation_number)) 

self._parentsimulation_number를 포함하는 Portfolio 클래스입니다 : 내가 Account 클래스에 추가하는 시도하고로 정의 된 2D numpy 배열입니다. accountAccount 클래스의 목적은

path_payment = account.get_path_payment() 

을 : 나는 의해 Portfolio 클래스에서 정보를이 작품에 접근하려고 나중에

def get_path_payment(self): 
     return self._path_payment 

: 그리고 또한 나는 그것을 위해 get 함수를 정의 .

AttributeError: 'Account' object has no attribute 'get_path_payment'

그것은 내가 Account 클래스로 _path_payment 추가도 전에 작동, 그래서 파이썬은 새 구성원을 인식하지 못하는 것 같아요 :

그러나, 나는 오류 다음있어?

이 문제를 해결하는 방법을 알고 계십니까? 고마워.

EDIT1 :

Account 클래스는 같은 수 있습니다 :

class Account(object): 
    def __init__(self, ....): 
     ...... 
     self._path_payment = np.zeros((4, self._parent.get_horizon())) 
     ...... 

    def get_path_payment(self): 
     return self._path_payment 

EDIT2 : 여기

질문과 관련된 예를 들어, 그것은 Portfolio 클래스 함께 :

path_payment = account.get_path_payment() 
path1_number += path_payment[0, simu] 
path2_number += path_payment[1, simu] 
path3_number += path_payment[2, simu] 
path4_number += path_payment[3, simu] 
+3

더 많은 'Account' 클래스를 보여줄 수 있습니까? 'get_path_payment'는 어디에 정의되어 있습니까? – jonrsharpe

+1

@jonrsharpe 게시물을 편집하기 만하면됩니다. 감사. – ChangeMyName

+1

왜 그런 오류가 발생하는지 알 수 없습니다. 들여 쓰기가 정확합니까? 'account._path_payment'에 직접 액세스 할 수 있습니까? 'Account'에 대한 또 다른 정의가 있나요? – jonrsharpe

답변

0

붙여 넣은 코드는 확실히 작동해야합니다 ...

그래도 다른 방법은 account에서 예상대로 작동합니까? 실패 라인 바로 앞에 print(type(account))을 쓸 수 있습니까?

오류는 일반적으로 섀도 ​​잉 오류로 발생합니다. 욕심 많은 임포트 나 함수 매개 변수에서 오는 동일한 이름을 가진 또 다른 변수이든 다른 인스턴스 객체를 실제로 다루는 반면 계정 오류를 사용한다고 생각합니다.

하지만 그건 짐작이 가네요 .--)

+0

답변이 필요한지 잘 모르겠습니다. 문제는 재현 될 수 없으며 제시된 코드는 아무 것도 표시하지 않습니다. – luk32

+0

그것이 추측이지만 OP가 자신의 문제를 해결하는 데 도움이 될 수있는 가능성이있는 문제입니다. 나는 완전히 틀릴 수도 있지만, 미래의 참고를 위해 그것은 미래의 독자들이 첫 번째 것을 확인하는 데있어 흔히 볼 수있는 공통적 인 오류입니다 ... 닫힐 때까지 게시물이 닫힐 때까지. – zmo

+0

어쩌면, 나는 이것이 단지 코멘트가되어야한다고 생각했다. 어쩌면 내가 틀렸어. 야생 추측을 응답으로 게시하는 것은 나에게 매우 회색 영역입니다. 지금이 문제를 해결하지 않지만 사람들이 더 잘 디버깅하는 데 도움이됩니다, 나는 괜찮은지 아닌지 판단하지 않을 것입니다. IMO는 논쟁의 여지가 있습니다. – luk32

관련 문제