本文主要是介绍__setattr__, __getattr__, __delattr__, __call__,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//转自http://blog.sina.com.cn/s/blog_4be6d8870100dtnw.html
为了弄明白python中__setattr__, __getattr__, __delattr__, __call__的作用,重写dict,扩展其功能
class storage(dict):#通过使用__setattr__, __getattr__, __delattr__#可以重写dict,使之通过“.”调用def __setattr__(self, key, value):self[key] = valuedef __getattr__ (self, key):try:return self[key]except KeyError, k:return Nonedef __delattr__ (self, key):try:del self[key]except KeyError, k:return None# __call__方法用于实例自身的调用#达到()调用的效果def __call__ (self, key):try:return self[key]except KeyError, k:return Nones = storage()
s.name = "hello"#这是__setattr__起的作用
print s("name")#这是__call__起的作用
print s["name"]#dict默认行为
print s.name#这是__getattr__起的作用
del s.name#这是__delattr__起的作用
print s("name")
print s["name"]
print s.name
这篇关于__setattr__, __getattr__, __delattr__, __call__的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!