我试图用python编写一个简单的对象,它将使用ConfigParser加载设置,将所有项作为字典获取,然后将这些项设置为对象的属性。在

如果我不包含__setattr__方法,这似乎是可行的。我可以打电话”settings.top_旅行“把答案拿回来。但是,一旦我尝试输入__setattr__,我似乎得到了一个错误。在

它看起来相当递归,所以我假设Get正在调用Set,等等。在set属性部分,我希望让它写回配置文件。因此,每当设置属性中的一个发生更改时,它就会被存储回它的来源文件中。在

下面您将找到代码和错误。在import ConfigParser

class settingsFile(object):

def __init__(self):

"""

Reloads the configuration file and returns a dictionary with the

settings :

[config]

top_travel = 250

"""

# Create a configuration object and read in the file

configuration = ConfigParser.ConfigParser()

configuration.read('config/config.cfg')

# Return all the "config" section as a list and convert to a dictionary

self.configuration = dict(configuration.items("config"))

def refresh(self):

self.__init__()

def __getattr__(self, attr):

return self.configuration[attr]

def __setattr__(self, attr, value):

print attr, " is now ", value

# Do some clever storing with ConfigParser

if __name__ == "__main__":

settings = settingsFile()

print settings.top_travel

settings.top_travel = 600

print settings.top_travel

错误:

^{pr2}$

python setattr无限递归_在python中引入setattr时出现递归错误相关推荐

  1. 以下选项中python用于异常处理结构_《Python 程序设计》复习题

    目录 填空题 一.基础知识 二.序列 三.选择结构与循环结构和函数及面向对象.文件 选择题 一.Python 基础语法 二.基本数据类型 三.程序的控制结构 四.函数和代码复用 五.组合数据类型 六. ...

  2. python发送soap报文_使用Python将带附件的XML发送到SOAP ws

    在过去的几周里,我一直在学习Python,并尝试将自定义XML发送到公共测试WS . 现在我觉得我没有取得任何进展 . 所以我现在需要帮助或任何建议 . 如果你使用SoapUI或其他方法(我试过-mz ...

  3. matlab输入指令错误怎么修改,在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义。 怎么修改?...

    点击查看在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义. 怎么修改?具体信息 答:MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因. 1. ...

  4. 在Word中打开MathType时出现AutoExecCLS错误解决方案

    文章目录 在Word中打开MathType时出现AutoExecCLS错误 方案1 方案2 方案3 在Word中打开MathType时出现AutoExecCLS错误 方案1 点击word里面的math ...

  5. python 打印数组变量_使用Python将数组的元素导出到变量中(unpacking)

    下面就为大家分享一篇使用Python将数组的元素导出到变量中(unpacking),具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 最近工作中遇到一个问题,需要利用Python将数组(list ...

  6. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  7. python字符串去掉空行_从python中的字符串中删除空格

    python字符串去掉空行 如何在python中删除字符串中的空格 (How to remove whitespaces in a string in python) str.lstrip()str. ...

  8. python argv 详解_对python中的argv和argc使用详解

    主要问题 为什么argv中第一个,即index=0的内容就是文件名? python中argc是用什么实现的? 概念解释 argc:argument counter,命令行参数个数 argv:argum ...

  9. python框架 mysql数据库_在Python的框架中为MySQL实现restful接口的教程

    最近在做游戏服务分层的时候,一直想把mysql的访问独立成一个单独的服务DBGate,原因如下: 请求收拢到DBGate,可以使DBGate变为无状态的,方便横向扩展 当请求量或者存储量变大时,mys ...

  10. python怎么更新数据库_在Python的Django框架中更新数据库数据的方法

    先使用一些关键参数创建对象实例,如下: >>> p = Publisher(name='Apress', ... address='2855 Telegraph Ave.', ... ...

最新文章

  1. java构建protobuf中的map,Protobuf对象作为Maps中的键
  2. 三级菜单页面布局_三级菜单的最快导航布局
  3. mysql数据备份在哪里_mysql之数据备份与恢复
  4. Redis 键值过期操作
  5. CreateChildControls 里动态生成的控件 PostBack 之后不能保持状态
  6. dedeCMS后台入口安全修改
  7. 【Flink】Flink 1.12.2 源码浅析 : TaskExecutor
  8. 显示编译代码时长的demo
  9. web前端炫酷特效-CSS3制作环形星星发光动画
  10. 有替代CV520国产非接触式读写器读卡芯片CI520
  11. 从五方面探究智慧城市顶层设计失败原因
  12. Java 实现加减乘除
  13. 空气质量等级c语言编程,华中科技大学C语言课设空气质量检测信息管理系统技术分析.docx...
  14. 牛牛倒计时抽签软件1.0发布
  15. linux V4L2子系统——v4l2架构(7)之V4L2应用编程
  16. Linux(一): 磁盘分区
  17. 双头巨人 (twin)
  18. Java - 你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?
  19. 数值计算之 拟合法,线性拟合,多项式拟合
  20. 中介者模式(Java)

热门文章

  1. ACM练级日志: POJ 2155、1151
  2. Windows下的工作组与域环境以及域的搭建管理流程
  3. C++学习书籍推荐《C++程序设计原理与实践》下载
  4. javascript排序_使用JavaScript对页面内容进行排序
  5. 桌面快捷方式打不开怎么办?用金山网盾可修复
  6. 新华三发布最新安全态势感知系统
  7. 推荐生态中的bias和debias
  8. Emma watson的演讲
  9. 技巧: 根据背景色自适应文本颜色
  10. 棋盘覆盖-经典的分治法问题