Python中的__SLOTS__属性使用示例


Posted in Python onFebruary 18, 2015

看python社区大妈组织的内容里边有一篇讲python内存优化的,用到了__slots__。然后查了一下,总结一下。感觉非常有用

python类在进行实例化的时候,会有一个__dict__属性,里边有可用的实例属性名和值。声明__slots__后,实例就只会含有__slots__里有的属性名。

# coding: utf-8
 
 
class A(object):
  x = 1
 
  def __init__(self):
    self.y = 2
 
a = A()
print a.__dict__
print(a.x, a.y)
a.x = 10
a.y = 10
print(a.x, a.y)
 
 
class B(object):
  __slots__ = ('x', 'y')
  x = 1
  z = 2
 
  def __init__(self):
    self.y = 3
    # self.m = 5 # 这个是不成功的
 
 
b = B()
# print(b.__dict__)
print(b.x, b.z, b.y)
# b.x = 10
# b.z = 10
b.y = 10
print(b.y)
 
 
class C(object):
  __slots__ = ('x', 'z')
  x = 1
 
  def __setattr__(self, name, val):
    if name in C.__slots__:
      object.__setattr__(self, name, val)
 
  def __getattr__(self, name):
    return "Value of %s" % name
 
 
c = C()
print(c.__dict__)
print(c.x)
print(c.y)
# c.x = 10
c.z = 10
c.y = 10
print(c.z, c.y)
c.z = 100
print(c.z)
{'y': 2}
(1, 2)
(10, 10)
(1, 2, 3)
10
Value of __dict__
1
Value of y
(10, 'Value of y')
100

Python 相关文章推荐
让python json encode datetime类型
Dec 28 Python
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
Python的语言类型(详解)
Jun 24 Python
Odoo中如何生成唯一不重复的序列号详解
Feb 10 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
python tkinter实现屏保程序
Jul 30 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
python 实现人和电脑猜拳的示例代码
Mar 02 Python
python3格式化字符串 f-string的高级用法(推荐)
Mar 04 Python
pycharm如何使用anaconda中的各种包(操作步骤)
Jul 31 Python
Python contextlib模块使用示例
Feb 18 #Python
Python中使用Inotify监控文件实例
Feb 14 #Python
Python中实现的RC4算法
Feb 14 #Python
Python脚本实现网卡流量监控
Feb 14 #Python
Centos5.x下升级python到python2.7版本教程
Feb 14 #Python
Python脚本实现DNSPod DNS动态解析域名
Feb 14 #Python
Python压缩和解压缩zip文件
Feb 14 #Python
You might like
德生BCL3000的电路分析和打磨
2021/03/02 无线电
深入理解PHP中的Session和Cookie
2013/06/21 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
python通过索引遍历列表的方法
2015/05/04 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
python对日志进行处理的实例代码
2018/10/06 Python
解决Mac下使用python的坑
2019/08/13 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
2020/07/01 Python
python开发入门——set的使用
2020/09/03 Python
小结Python的反射机制
2020/09/28 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
会计毕业生求职简历的自我评价
2013/10/20 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
员工工作表现自我评价
2015/03/06 职场文书
道歉短信大全
2015/05/12 职场文书
网络舆情信息简报
2015/07/21 职场文书
初二数学教学反思
2016/02/17 职场文书
创业计划书之美容店
2019/09/16 职场文书
mysql 获取时间方式
2022/03/20 MySQL