python setattr无限递归_python – 如何正确使用__setattr__,避免无限递归
我想定义一个包含读写方法的类,可以调用如下:
instance.read
instance.write
instance.device.read
instance.device.write
为了不使用隔行类,我的想法是覆盖__getattr__和__setattr__方法,并检查,如果给定的名称是设备重定向返回自身。但是我遇到了无穷递归的问题。示例代码如下:
class MyTest(object):
def __init__(self, x):
self.x = x
def __setattr__(self, name, value):
if name=="device":
print "device test"
else:
setattr(self, name, value)
test = MyTest(1)
在__init__中,代码试图创建一个新的属性x,它调用__setattr__,它再次调用__setattr__等等。如何改变这个代码,在这种情况下,创建一个新的属性x,保存值1?
或者有什么更好的方法来处理像instance.device.read这样的调用来映射到instance.read?
由于总是有关于为什么的问题:我需要创建xmlrpc调用的抽象,因此可以创建诸如myxmlrpc.instance,device.read和类似的简单方法。我需要“模拟”,以模拟这种多点方法调用。
python setattr无限递归_python – 如何正确使用__setattr__,避免无限递归相关推荐
- python setattr 代码可读性_python __setattr__、__getattr__、__getattribute__全面详解
一.属性引用函数 hasattr(obj,name[,default]) getattr(obj,name) setattr(obj,name,value) delattr(obj,name) 二.属 ...
- 在python中print 应用_Python print正确使用方法浅析
Python编程语言是一款比较新颖的编程语言,相对于其他语言来说,有很多不同的特点引起了大多数开发人员的兴趣.在这里我们可以先从Python print的相关应用方法来分析,初步了解这一语言的应用方式 ...
- python怎么输出复数_python基础知识及应用(二)输入输出|递归|深浅拷贝|全局变量|复数...
目录 一.python输入输出 二.迭代 2.1 输入与输出 2.2 解法 三.拷贝 3.1 拷贝实例 3.2 对象的赋值 3.3 浅拷贝 3.4 深拷贝 3.5 拷贝例如 四.set 4.1 题 4 ...
- 递归函数python有什么特点_Python中的递归
在前面的讲解中,函数的调用通常发生在彼此不同的函数之间.其实,函数还有一种特殊的调用方式,那就是自己调用自己,这种方式称为函数递归调用. 递归,在程序设计中也是一个常用的技巧,甚至是一种思维方式,非常 ...
- python冒泡排序算法非递归_python 冒泡排序,递归
今天LeetCode的时候暴力求解233 问题: 给定一个整数 n,计算所有小于等于 n 的非负数中数字1出现的个数. 例如: 给定 n = 13, 返回 6,因为数字1出现在下数中出现:1,10,1 ...
- python二分法递归_python 【递归 及 二分法】
python [递归函数 及 二分法] 一.递归的定义 在一个函数里再调用这个函数本身,这种魔性的使用函数的方式就叫做递归. 递归的最大深度--997 #修改递归层数 import sys sys.s ...
- 彻底理解python递归_Python开发之-Python递归图示理解
1.函数递归是函数式编程的重要组成部分,所以对函数递归的深层次理解十分重要.本人用图示的方法解释函数的层级递归方式,先理解下面的函数 deftest(n):if n == 1:return 1 els ...
- python 获取脚本当前路径_Python获取脚本所在目录的正确方法
http://www.jb51.net/article/49035.htm 文章主要介绍了Python获取脚本所在目录的正确方法 1.以前的方法如果是要获得程序运行的当前目录所在位置,那么可以使用os ...
- python 文件路径找不到_python路径正确但找不到文件
python 为什么明明有这个文件路径,但有时候会找不到 整理路径,请用 os.path.normpath() 进行整理,然后你再试试,不要用 join a = os.path.normpath(&q ...
最新文章
- OpenCV 【十四】改变图像的对比度和亮度高度关联章节:OpenCV 【十】——Gamma校正 ——图像灰度变化
- 考PMP证书一定要参加PMP培训吗?
- 漫谈Google Percolator分布式事务
- css设置并排,CSS并排排列2个div
- 互联网1分钟 | 0321 小米上线“朕惊视频”;依图医疗与华为联合发布智能医疗云...
- volatile 和 sig_atomic_t
- html怎么修改锚点的属性,在HTML中设置自定义锚点
- 纽大博士宿舍内自缢身亡,本月即将毕业
- python动态表情包下载_Python从eif中导出qq表情的gif图片
- bootstrap中container类和container-fluid类的区别
- Pseudo code:伪代码
- 硅谷新一代媒体巨头Mode Media突然宣布关闭
- 考满分软件测试工程师(实习)面试软达启航面试
- Solr -- 实时搜索
- 【数据挖掘】电商数据合集
- 苹果手机如何用计算机,电脑怎么控制iPhone手机
- 【区块链】以太坊Solidity编程:智能合约实现之基本语法
- 门店怎么申请共享充电宝
- ab压力测试结果-简要说明
- 代码角度理解SGX的认证机制(一):本地认证
热门文章
- js 设置video宽度_video设置视频的宽高
- 【教程】会声会影“分享”输出的AVI也可以既清晰又体积小
- 你连对外接口签名都不会知道?有时间还是要学习学习。
- 复试c语言笔试题,2014年暨南大学C语言考研复试试题(回忆版)
- 7-119 奇偶分家
- linux for循环套for循环格式_为什么for循环和aes八字不合
- STM32G0开发笔记-Platformio+libopencm3-SPI接口使用
- Python中用print函数输出
- 斗地主——扎金花——3DMark
- iOS 内购IAP(In-App Purchases)代码实现(上)