为什么实例变量无法识别

时间:2014-11-04 05:52:24

标签: python

我在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在这里无法识别实例变量。 〜

2 个答案:

答案 0 :(得分:3)

您正在定义

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

使用

进行访问
...
configParser.read(configFilePath)
...

您必须以self.configParser进行访问。

答案 1 :(得分:1)

这是预期的。在您的代码中,python将无法在没有self的情况下访问类成员。这是正确的代码:

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

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