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算法学习之计数排序实例
Dec 18 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
Flask核心机制之上下文源码剖析
Dec 25 Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 Python
python sort、sort_index方法代码实例
Mar 28 Python
python os模块简单应用示例
May 23 Python
TensorFlow索引与切片的实现方法
Nov 20 Python
python双向链表原理与实现方法详解
Dec 03 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
Python绘制K线图之可视化神器pyecharts的使用
Mar 02 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 Python
使用Pytorch训练two-head网络的操作
May 28 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
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
php将日期格式转换成xx天前的格式
2015/04/16 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
javascript闭包的理解和实例
2010/08/12 Javascript
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
javascript的push使用指南
2014/12/05 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
node.js实现快速截图
2016/08/27 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
Python里隐藏的“禅”
2014/06/16 Python
跟老齐学Python之print详解
2014/09/28 Python
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
django实现前后台交互实例
2017/08/07 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
高中的自我鉴定
2013/12/16 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
初三数学教学反思
2016/02/17 职场文书
小程序实现筛子抽奖
2021/05/26 Javascript
nginx+lua单机上万并发的实现
2021/05/31 Servers
python自动化八大定位元素讲解
2021/07/09 Python