2014-11-04 68 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

爲什麼python無法識別實例變量。 〜

+0

你不需要額外的'('')''左右os.path.join(os.getcwd(), 'webPageTestConfig.cfg')' – 2014-11-04 06:30:27

回答

1

這是預期的。在你的代碼中,python將無法訪問沒有自己的類成員。下面是正確的代碼:

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

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

您正在定義

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

而且使用

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

你要訪問的self.configParser訪問。