python面向对象-动态扩展类与实例和__slots__变量

# -*- coding: utf-8 -*-
"""
Created on Mon Nov 11 14:21:50 2019

@author: 宫阙潮海隔
"""
#动态扩展类与实例

from types import MethodType
class Student:
    pass
def SetName(self,name):
    self.name=name
def SetSno(self,sno):
    self.sno=sno
if __name__=='__main__':
    stu1=Student()
    stu2=Student()
    stu1.SetName=MethodType(SetName,stu1)#为stu1对象绑定SetName方法
    Student.SetSno=SetSno#为Student类绑定SetSno方法
    stu1.SetName('李晓明')
    stu1.SetSno('1810100')
    #stu2.SetName('张刚')
    stu2.SetSno('1810100')
# -*- coding: utf-8 -*-
"""
Created on Mon Nov 11 14:28:07 2019

@author: 宫阙潮海隔
"""

#__slots__
class Person:
    __slot__=('name')#定义允许动态扩展的属性
class Student(Person):
    __slots__=('sno')
class Postgraduate(Student):
    pass
if __name__=='__main__':
    stu=Student()
    stu.sno='1810100'
    stu.name='马红'
    #stu.tutor='黎明'
    pg=Postgraduate()
    pg.sno='1810100'
    pg.name='张刚'
   # pg.tutor('马红')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值