文章详情页
python - object.__setattr__和直接设置属性有什么不同吗?
浏览:241日期:2022-09-18 17:58:49
问题描述
在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__ = {}的话是否效果一样呢?
问题解答
回答1:效果其实是一样的。比如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)
相关文章:
1. python - pip install出现下面图中的报错 什么原因?2. html5 - api.douban.com/v2/movie/in_theaters?start=0&count=3 不在以下合法域名列表中3. Browser-sync安装失败问题4. python - 怎样在linux下开发flask web应用时查看代码出错(traceback)的地方。5. mysql连表排序6. mysql - 数据库字段命名问题,新人,求解7. python3.x - python多进程,不能在同一窗口吗8. 微信端电子书翻页效果9. python - nginx为什么不能反代图片?10. windows-7 - Win7中Vmware Workstatoin与Xampp中Apache服务器端口冲突?
排行榜

网公网安备