python setattr无限递归_在python中引入setattr时出现递归错误
我试图用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时出现递归错误相关推荐
- 以下选项中python用于异常处理结构_《Python 程序设计》复习题
目录 填空题 一.基础知识 二.序列 三.选择结构与循环结构和函数及面向对象.文件 选择题 一.Python 基础语法 二.基本数据类型 三.程序的控制结构 四.函数和代码复用 五.组合数据类型 六. ...
- python发送soap报文_使用Python将带附件的XML发送到SOAP ws
在过去的几周里,我一直在学习Python,并尝试将自定义XML发送到公共测试WS . 现在我觉得我没有取得任何进展 . 所以我现在需要帮助或任何建议 . 如果你使用SoapUI或其他方法(我试过-mz ...
- matlab输入指令错误怎么修改,在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义。 怎么修改?...
点击查看在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义. 怎么修改?具体信息 答:MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因. 1. ...
- 在Word中打开MathType时出现AutoExecCLS错误解决方案
文章目录 在Word中打开MathType时出现AutoExecCLS错误 方案1 方案2 方案3 在Word中打开MathType时出现AutoExecCLS错误 方案1 点击word里面的math ...
- python 打印数组变量_使用Python将数组的元素导出到变量中(unpacking)
下面就为大家分享一篇使用Python将数组的元素导出到变量中(unpacking),具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 最近工作中遇到一个问题,需要利用Python将数组(list ...
- python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议
<Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: <Python之禅>中对于Pyt ...
- python字符串去掉空行_从python中的字符串中删除空格
python字符串去掉空行 如何在python中删除字符串中的空格 (How to remove whitespaces in a string in python) str.lstrip()str. ...
- python argv 详解_对python中的argv和argc使用详解
主要问题 为什么argv中第一个,即index=0的内容就是文件名? python中argc是用什么实现的? 概念解释 argc:argument counter,命令行参数个数 argv:argum ...
- python框架 mysql数据库_在Python的框架中为MySQL实现restful接口的教程
最近在做游戏服务分层的时候,一直想把mysql的访问独立成一个单独的服务DBGate,原因如下: 请求收拢到DBGate,可以使DBGate变为无状态的,方便横向扩展 当请求量或者存储量变大时,mys ...
- python怎么更新数据库_在Python的Django框架中更新数据库数据的方法
先使用一些关键参数创建对象实例,如下: >>> p = Publisher(name='Apress', ... address='2855 Telegraph Ave.', ... ...
最新文章
- java构建protobuf中的map,Protobuf对象作为Maps中的键
- 三级菜单页面布局_三级菜单的最快导航布局
- mysql数据备份在哪里_mysql之数据备份与恢复
- Redis 键值过期操作
- CreateChildControls 里动态生成的控件 PostBack 之后不能保持状态
- dedeCMS后台入口安全修改
- 【Flink】Flink 1.12.2 源码浅析 : TaskExecutor
- 显示编译代码时长的demo
- web前端炫酷特效-CSS3制作环形星星发光动画
- 有替代CV520国产非接触式读写器读卡芯片CI520
- 从五方面探究智慧城市顶层设计失败原因
- Java 实现加减乘除
- 空气质量等级c语言编程,华中科技大学C语言课设空气质量检测信息管理系统技术分析.docx...
- 牛牛倒计时抽签软件1.0发布
- linux V4L2子系统——v4l2架构(7)之V4L2应用编程
- Linux(一): 磁盘分区
- 双头巨人 (twin)
- Java - 你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?
- 数值计算之 拟合法,线性拟合,多项式拟合
- 中介者模式(Java)