在用例中学习python - 字典作为全局?

时间:2014-10-06 10:23:24

标签: python dictionary

我正在学习python,并希望了解我的代码的正确pythonic方法。

我正在编写一个实用程序

  1. 读取文件名和搜索字词列表
  2. 打开每个文件,搜索术语并从匹配的行中提取一些数据
  3. 构造一个字典来保存标签术语和值
  4. 将此词典输出为CSV文件
  5. 我有代码工作 - 我有一些整理和一些精简 - 但想了解最佳实践方法。

    所以,流程如下:

    create global dictionary
    report_outer_loop()
    print_dict()
    
    report_outer_loop
      open the list of reports
      for each item in list (the item contains report name, search term, etc)
        call report_inner_loop (item)
    
    report_inner_loop (item)
      get reportname from item
      get search term from item  
      open report
      for each line in report
        find search_term
        update dictionary with extracted data
    
    print_dict()
      for each item in dictionary
      write key, value to file
    

    所以,你可以看到我有一个由内循环和print_dict访问的全局字典。 我的问题是:这是正确的pythonic方法吗? 或者我不应该将其创建为全局,而是将其传递给outer_loop,然后传递给内部,然后传递打印功能?
    还是有更好的方法?

2 个答案:

答案 0 :(得分:2)

我会在report_outer_loop中创建一个本地字典,将其传递给report_inner_loop并在运行report_outer_loop后返回该字典。

答案 1 :(得分:0)

您可以继承dict,将report_outer_loop添加为append_reports功能。然后,您只需使用self.append(extracted_data)