注意python dict的内容变化
来源:互联网 发布:雕刻机编程 编辑:程序博客网 时间:2024/04/29 07:12
下面的代码,执行有错:
class TripleDataFilter(): def __init__(self): self.idFilter = None self.propFilter = None self.valueFilter = None self.prefilter = None self.filterOrder = [] self.filterMap = {"id":self.idFilter, "prop_name":self.propFilter, "prop_value":self.valueFilter} def read_conf(self, confFile): if (not os.path.isfile(confFile)) or "" == confFile: sys.stderr.write(confFile + " is not exit!\n") return False config = ConfigParser.ConfigParser() config.read(confFile) if "WORK_DIR" in config.sections(): workDir = config.items("WORK_DIR")[0][1].strip() else: workDir = "." prefilterConf = config.items("PREFILTER")[0][1] if "none" != prefilterConf.lower(): self.preFilter = prefilter.PreFilter() self.preFilter.read_conf(prefilterConf) fItemList = config.items("FILTER_CONF_FILES") for fItem in fItemList: segName = fItem[0].strip() filePath = fItem[1].strip() if os.path.split(filePath)[0] == "": filePath = workDir + "/" + filePath if "id_conf" == segName: self.idFilter = SegmentFilter("id"); self.idFilter.read_conf(filePath, self.preFilter) elif "prop_conf" ==segName: self.propFilter = SegmentFilter("prop"); self.propFilter.read_conf(filePath, self.preFilter) elif "value_conf" == segName: print "conf value" self.valueFilter = SegmentFilter("value"); self.valueFilter.read_conf(filePath, self.preFilter) else: sys.stderr.write("字段名错误 %s\n" % segName) return False self.filterOrder = config.items("FILTER_ORDER") self.filterOrder.sort(key = lambda x:x[1]) def filter(self, tripleExt): for filterType in self.filterOrder: if self.filterMap[filterType[0]]: self.filterMap[filterType[0]].filter(tripleExt) else: print filterType[0] + " is null"
执行filter时,会说filterMap里的元素都为None。
原因是,创建dict 时,会重新复制一份新的对象到dict中。
最开始,所有的filter都为None,存入了dict中。
后来,虽然filter都被赋值,但dict中的值没有改变,仍为None。
- 注意python dict的内容变化
- python的dict速度
- python 的Dict
- Python dict的特点
- Python Dict的用法
- python的dict实现
- 如果实现python字典的只读, 考虑字典内容有list, dict的嵌套问题
- python中dict的用法 python中dict的用法
- Python的dict.fromkeys应用
- python中dict的用法
- python中dict的用法
- Python的Dict版图遍历
- python 字典dict 的使用
- Python的dict.fromkeys应用
- Python Dict 词典的用法
- python的dict与set
- python中dict的使用方法
- Python中dict的特点
- linux下svn命令
- mysql 添加外键
- math.h中的函数
- 俞敏洪:生命的远行不需要太多的准备
- VMware vSphere5.0 学习之手动克隆虚拟机
- 注意python dict的内容变化
- 直接内存访问(DMA)
- 题目1037:Powerful Calculator
- oracle连接(内连接,左连接,右连接,全连接,交叉连接)
- 基于cocos2d-x简易泡泡龙游戏二
- mysql随机数
- A1-注入
- python中的lambda知多少!
- c语言快速排序的库函数整理