__solts__

# 创建一个class实例
class Student(object):
    pass
# 给实例绑定一个属性
s=Student()
s.name = 'Micheal' # 动态给实例绑定一个属性
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)# 测试结果

# 给所有的实例绑定方法,可以给class绑定方法
def set_score(self,score):
    self.score = score
Student.set_score = set_score


# __slots__的使用
# Python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该class实例能添加的属性
class Student(object):
    __slots__ = ('name','age')# 用tuple定义允许绑定的属性名称
s = Student() # 创建新的实例
s.name = 'Michael' # 绑定属性name
s.age = 25 # 绑定age属性
# s.score  = 99 # 绑定属性score   报错

print (s.name,s.age,s.score)

'''
__slots__定义的属性仅对当前类实例起作用,对继承的子类不起作用
除非在子类中也定义__slots__,这样,子类实例允许定义的属性就是自身的__slots__加上父类的__slots__
'''

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值