object.__setattr__和直接设置Python属性有什么不一样?,,在werkzeug中有这
object.__setattr__和直接设置Python属性有什么不一样?,,在werkzeug中有这
在werkzeug中有这样的定义:
class Local(object): __slots__ = ('__storage__', '__ident_func__') def __init__(self): object.__setattr__(self, '__storage__', {}) object.__setattr__(self, '__ident_func__', get_ident)
此处的__init__方法里,使用self.__storage__ = {}的话是否效果一样呢?
效果其实是一样的。
比如object.a = 1最终也是调用self.__setattr__('a', 1);
只不过你自己重写父类(object)的__setattr__方法时,可以加上自己定义的一些规则,比如:
def __setattr__(self, name, value): if name == 'xxx': print 'Hi, I can't do it.' else: super(Local, self).__setattr__(name, value)
编橙之家文章,
相关内容
- python中flask celery配置结构出错求解,flaskcelery,脚手架是
- Python beautifulsoup方法得到input中value的方式是什么?,,H
- python代码文件目录打包该怎么写,python怎么写,小白提问
- 请问网上虚拟主机安装依赖包具体操作方法是?,虚拟主
- Flask获得访客用户代理方法,flask获得访客代理,找了f
- pyspider cookies用requests设置cookies成功登录微博报错,py
- 求CentOS中安装Python-PIP exec: python2.7: not found问题解决方法
- Python FTP上传时遇到10060错误是什么意思,python10060,#!/
- 有支持提取pdf类型文件的python第三方库或是方法吗?,
- Python怎么将16进制字符串转换成汉字输出呢,python进制
评论关闭