Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >__slots__的用法?

__slots__的用法?

提问于 2017-12-19 03:03:30
回答 2关注 0查看 371

__slots__Python中的目的是什么?特别是关于什么时候使用它,什么时候不使用它?

回答 2

秋之夕颜清

发布于 2017-12-19 03:24:13

你会想使用__slots__,如果你要实例化同一个类的对象很多(几百,几千)。__slots__只存在作为一个内存优化工具。

__slots__用于约束属性创建是非常令人沮丧的,一般而言,您希望避免它,因为它会破坏pickle,还有一些其他的python内省功能。

akjok54

发布于 2017-12-19 03:24:04

正确使用__slots__是节省空间的对象。而不是有一个动态的字典,允许随时添加属性的对象,有一个静态结构,不允许添加后创建。[这个用法__slots__消除了每个对象的一个​​字典的开销]。虽然这有时是一个有用的优化,但是如果Python解释器足够动态,那么这将是完全没有必要的,这样当实际上添加到目的。

不幸的是,插槽有一个副作用。它们以一种可以被控制怪物和静态打字机器滥用的方式来改变具有插槽的对象的行为。这是不好的,因为控制怪物应该滥用元类,静态类型的小丑应该滥用装饰器,因为在Python中,应该只有一个明显的做法。

让CPython足够聪明来处理没有空间的存储__slots__是一项重大的任务,这可能是为什么它不在P3k(尚未)的变化列表中。

和开发者交流更多问题细节吧,去 写回答
相关文章
__slots__魔法
在Python中,每个类都可以有实例属性。 默认情况下,Python使用一个字典来存储一个对象的实例属性。 这是非常有用的,因为它允许在运行时设置任意的新属性。
Helloted
2022/06/07
3230
Python __slots__ 简介
为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该class实例能添加的属性:
为为为什么
2022/08/06
5330
Python __slots__ 简介
__slots__(面向对象进阶)
1.__slots__是什么:是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性) 2.引子:使用点来访问属性本质就是在访问类或者对象的__dict__属性字典(类的字典是共享的,而每个实例的是独立的) 3.为何使用__slots__:字典会占用大量内存,如果你有一个属性很少的类,但是有很多实例,为了节省内存可以使用__slots__取代实例的__dict__ 当你定义__slots__后,__slots__就会为实例使用一种更加紧凑的内部表示。实例通过
超蛋lhy
2018/08/31
4070
python __slots__ 限制属性
Python 是动态语言,允许我们动态的增加属性和方法 class Student(object): pass s = Student() s.name = "LiLei" print(s.name) >>> LiLei 同样也有办法限制属性的动态绑定 class Teacher(object): # 用tuple定义允许绑定的属性名称,但是此限制对子类不起作用 __slots__ = ('name', 'age') 如上所示可以规定 class Teacher 只
onety码生
2018/11/21
5440
Python干货——_ _slots__属性
👨‍🎓作者:Java学术趴 🏦仓库:Github、Gitee ✏️博客:CSDN、掘金、InfoQ、云+社区 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。 ☠️每日毒鸡汤:这个社会是存在不公平的,不要抱怨,因为没有用!人总是在反省中进步的! 👋大家好!我是你们的老朋友Java学术趴。 第二十章 动态添加属性和方法 20.1 概念 动态语言:运行时可以改变其结构的语言,例如新的函数、
Java学术趴
2022/06/18
4750
Python干货——_ _slots__属性
python __slots__属性详解
__slots__允许我们声明并限定类成员,并拒绝类创建__dict__和__weakref__属性以节约内存空间。
雷子
2023/10/19
2110
python  __slots__属性详解
python3之类的 __slots__
  1. 限定一个类创建的实例只能有固定的实例属性(实例变量),不允许对象添加列表以外的实例属性
py3study
2020/01/06
6660
Python实例属性限制(__slots__)
正常情况下,当我们定义了一个class,创建了一个class实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class:
小破孩的梦想空间
2020/04/23
1.1K0
python 面向对象技巧__slots__
正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class:
葫芦
2019/04/17
5290
python __slots__节省内存占用
对于主要是用来当成简单的数据结构的类而言,你可以通过给类添加 slots 属性来极大的减少实例所占的内存。比如:
用户5760343
2019/12/12
5900
Python——__slots__,property和对象命名规范
如果你看过github当中一些大牛的代码,你会发现很多大牛经常在类的顶部加上__slots__关键字。如果你足够好奇,你可能会试着把这个关键字去掉再运行试试,你会发现去掉了之后什么也没有发生,一切依然运行得很好。
TechFlow-承志
2020/04/22
6230
Py测开《内置属性__slots__》
自己定义一个类,事先定义一个__slots__属性,创建一个对象的时候,这个对象就不会自动生成__dict__属性了。这个是关于节约内存方面的东西。
清菡
2022/04/27
3290
Py测开《内置属性__slots__》
【说站】Python中__slots__限制属性
1、想限制实例对象的属性,只允许在Person的实例对象中添加name和age属性。
很酷的站长
2022/11/24
3410
【说站】Python中__slots__限制属性
__slots__ 为创建很多实例节省内存
当我们在需要创建很多实例的情况下,怎么更好的节省内存是个问题。比如一个系统,有许多用户的信息,同时访问的话会创建很多实例。
生信编程日常
2020/04/16
4770
Python编程思想(28):限制类的动态特性(__slots__属性)
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入 160442 开始学习。
蒙娜丽宁
2020/07/02
7280
【说站】python中__slots__如何节约内存
1、利用_slots__类属性,可以将实例属性存储在元zu中,大大节省了存储空间。
很酷的站长
2022/11/23
2160
【说站】python中__slots__如何节约内存
链式操作的用法reject的用法catch的用法all的用法race的用法
Promise是一个构造函数,自己身上有all、reject、resolve这几个眼熟的方法,原型上有then、catch等同样很眼熟的方法。
用户1174620
2020/12/25
4.5K0
Python学习 Day 8 继承 多态 Type isinstance dir __slots__
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Superclass)。
统计学家
2019/04/10
9640
amazement的用法_release的用法
也就是说当一个线程遇到WiteOne的时候,如果在WiteOne里面没有线程在操作,则此线程进去操作
全栈程序员站长
2022/08/03
3.4K0
patch的用法_以的用法
转载:http://shenze60.blog.163.com/blog/static/315747722009724113026896/
全栈程序员站长
2022/09/16
5.3K0

相似问题

rapidjson 修改数组的用法?

0540

python中print用法问题?

0138

有配置信息的详细用法吗?

046

Randomized_SVD()函数返回值的用法?

0291

external-classes用法不清楚?

2296
相关问答用户
高级数据分析师擅长5个领域
擅长4个领域
萃橙科技 | 合伙人擅长4个领域
腾讯 | 技术专家擅长2个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档