2014-11-04 2 views
2

저는 Python에서 다음 클래스를 사용합니다.인스턴스 변수가 인식되지 않는 이유는 무엇입니까?

import os,ConfigParser 

class WebPageTestConfigUtils: 

    def __init__(self, configParser=None, configFilePath=None): 
     self.configParser = ConfigParser.RawConfigParser() 
     self.configFilePath = (os.path.join(os.getcwd(),'webPageTestConfig.cfg')) 

    def initializeConfig(self): 
     configParser.read(configFilePath) 
     return configParser 

    def getConfigValue(self,key): 
     return configParser.get('WPTConfig', key) 

def main(): 
webPageTestConfigUtils = WebPageTestConfigUtils() 
webPageTestConfigUtils.initializeConfig() 
webPageTestConfigUtils.getConfigValue('testStatus') 

if __name__ =='__main__': 
main() 

실행시. 이것은 나에게 오류를 준다.

NameError: global name 'configParser' is not defined.

왜 파이썬은 여기서 인스턴스 변수를 인식 할 수 없습니까? ~ 당신은

... 
self.configParser = ConfigParser.RawConfigParser() 
... 

을 정의하고 self.configParser으로 접근 할 필요가

... 
configParser.read(configFilePath) 
... 

사용하여 액세스하는
~

+0

당신은 ('')'약'os.path.join'추가하지 않아도은 (os.getcwd(), 'webPageTestConfig.cfg') ' –

답변

1

예상대로입니다. 귀하의 코드에서, 파이썬은 자신이없는 클래스 멤버에 액세스 할 수 없습니다. 여기에 올바른 코드 :

def initializeConfig(self): 
    self.configParser.read(self.configFilePath) 
    return self.configParser 

def getConfigValue(self,key): 
    return self.configParser.get('WPTConfig', key) 
관련 문제