码迷,mamicode.com
首页 > 其他好文 > 详细

使用__slots__

时间:2018-04-30 18:00:17      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:python   student   支持   增加   from   class   父类   slot   obj   

1、python支持动态给类和实例增加属性和方法;
2、python __slots__只能限制实例的属性及方法,对于类则没有影响,对于子类则更是没有限制。
3、如果该类有父类,也要在父类设置__slots__才能限制。

class Student(object):
    __slots__ = (‘name‘, ‘age‘, ‘set_age‘, ‘score‘)
    pass

s = Student()

# 动态给实例增加属性
s.name = ‘Michael‘
print(s.name)

# 动态给实例增加方法和属性
def set_age(self, age):
    self.age = age

from types import MethodType
s.set_age = MethodType(set_age, s)
s.set_age(25)
print(s.age)

# 动态给类增加属性
Student.gender = ‘male‘
print(Student.gender)
print(s.gender)

# 动态给类增加方法和属性
def set_score(self, score):
    self.score = score

Student.set_score = set_score
s.set_score(66)
print(s.score)

  

使用__slots__

标签:python   student   支持   增加   from   class   父类   slot   obj   

原文地址:https://www.cnblogs.com/zuxing/p/8973991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!