2012-05-02 3 views
1

나는 파이썬 모듈을 가지고 있는데 여기에는 정규 함수 정의와 클래스가 포함되어있다. 어떤 이유로 생성자를 호출하고 값을 전달할 때 클래스 변수를 업데이트하지 않습니다.파이썬 모듈 내부에서 클래스 선언하기

내 모듈은 VODControl (VODControl.py)이라고합니다. 모듈 내부에서 선언 한 클래스를 DRMPath라고합니다. DRMPath 클래스에는 로그 파일과 결과라는 두 개의 인스턴스 vairable이 있습니다. logfile은 문자열이고 results는 사전입니다.

내 생성자는 다음과 같습니다

내 다른 파이썬 스크립트에서 가져올
def __init__(self, file): 
    self.logilfe = file 
    self.results['GbE1'] = "" 
    self.results['GbE2'] = "" 
    self.results['NetCrypt'] = "" 
    self.results['QAM'] = "" 

내가 할 :

d = VODControl.DRMPath('/tmp/adk.log') 
:

import VODControl 

내가 사용하는 호출은 다음과 같다

그러나 logfile 인스턴스 변수의 값을 출력 할 때 생성자에 전달 된 값으로 업데이트되지 않습니다. :

print d.logfile 

인쇄 후에는 여전히 빈 문자열입니다. 뭐라 구요?

+4

'logilfe'오타입니까? – ChristopheD

+0

현재 [builtin 파일 유형] (http://docs.python.org/library/stdtypes.html#file-objects)을 섀도 잉하고 있으므로'file' 매개 변수의 이름을'fname' 또는 다른 것으로 바꾸는 것이 좋습니다. – Glider

+0

+1 정확한 * 코드를 게시하려면 +1하십시오. 여기에는 logilfe 오타가 포함됩니다. 포스터가 너무 많으면 쓰려고하는 내용을 반영하는 스 니펫을 삽입하지만 키 오타 또는 기타 우우를 생략합니다. – PaulMcG

답변

2

self.logilfe = fileself.logfile = file과 동일하지 않습니다. 또한 빈 문자열이 아닌 None을 반환 할 가능성이 있습니다.

+0

음, 나는 큰 멍청이 같지 않습니다. 때로는 두 번째 눈이 필요합니다. 나의 동료들을 대신하여 StackOverflow를 가지고있는 신들에게 감사하고 나 자신을 어리 석다. 고마워요, 그 잘못은 ... – slappyjam

관련 문제