python中的__slots__
2017-08-08 11:03
197 查看
为了达到限制的⽬的,Python允许在定义class的时候,定义一个特殊的 __slots__变量,来限制该class实例能添加的属性:
class Foo(object):
__slots__ = ("a", "b")
# 限制动态使用对象名添加东西(属性、方法)的名字
obj = Foo()
obj.a = 100
# print(obj.a)
def say_a(self):
print(self.a)
# Foo.c =say_a
import types
fun =types.MethodType(say_a, obj)
obj.c =fun
obj.c =200
print(obj.c)
注意:使用__slots__要注意,__slots__定义的属性仅对当前类实例起作用,对于继承的自类是不起作用的
class Foo(object):
__slots__ = ("a", "b")
# 限制动态使用对象名添加东西(属性、方法)的名字
obj = Foo()
obj.a = 100
# print(obj.a)
def say_a(self):
print(self.a)
# Foo.c =say_a
import types
fun =types.MethodType(say_a, obj)
obj.c =fun
obj.c =200
print(obj.c)
注意:使用__slots__要注意,__slots__定义的属性仅对当前类实例起作用,对于继承的自类是不起作用的
相关文章推荐
- python基础——使用__slots__
- Python3学习(23)--__slots__ 限制实例属性的绑定
- Python基础(6)- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)
- Python学习笔记 __slots__ 限制类属性
- 【python】详解类class的通过__slots__限制类实例对象的属性(七)
- slots - Python的结构体 转
- 【python】面向高级对象 slots
- python 使用__slots__
- 用Python的 __slots__ 节省9G内存
- Python3之__slots__用法
- 【脚本语言系列】关于Python基础知识__slots__,你需要知道的事
- python基础----__slots__方法、__call__方法
- python中的__all__和__slots__
- Python 面向对象 - __slots__
- python __slots__
- Python内存优化:Profile,slots,compact dict
- python学习-slots
- python学习02 --__slots__
- python语言是动态语言、给类添加属性、方法、静态方法和类方法、__slots__()、python中的生成器、yield的用法
- python使用__slots__