我想编写一个实用程序类来读取 python 中的配置文件。
import os,ConfigParser
class WebPageTestConfigUtils:
configParser = ConfigParser.RawConfigParser()
configFilePath = (os.path.join(os.getcwd(),'webPageTestConfig.cfg'))
@staticmethod
def initializeConfig():
configParser.read(self.configFilePath)
@staticmethod
def getConfigValue(key):
return configParser.get('WPTConfig', key)
def main():
WebPageTestConfigUtils.initializeConfig()
print WebPageTestConfigUtils.getConfigValue('testStatus')
if __name__ =='__main__':
main()
执行时会抛出错误。
NameError: 全局名称“configParser”未定义
为什么python不能识别静态成员。
最佳答案
一般来说,使用 @classmethod
几乎总是优于 @staticmethod
。
然后,configParser
是cls
参数的一个属性:
class WebPageTestConfigUtils(object):
configParser = ConfigParser.RawConfigParser()
configFilePath = (os.path.join(os.getcwd(),'webPageTestConfig.cfg'))
@classmethod
def initializeConfig(cls):
cls.configParser.read(cls.configFilePath)
@classmethod
def getConfigValue(cls, key):
return cls.configParser.get('WPTConfig', key)
另请注意,您对 self
的使用已替换为 cls
。
关于python - 如何在 Python 中正确定义静态实用程序类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26729078/