python中的__getattribute__容易出现的bug

 

class Person(object):
	def __getattribute__(self,obj):  
		print("test")
		if obj.startwith("a"): #如果对象是以a字母开头的
		    return "hahaha"
		else:
		    return self.test #这里不能这么写,因为self.test还会被__getattribute__捕获然后再进入到else就是这样一直死循环 
	def test(self):
	    pass		
t = Person()
t.a
t.b#这里开始出现死循环	
posted @ 2020-01-03 15:07  chaiyinlei  阅读(220)  评论(0)    收藏  举报