# -*- coding: utf-8 -*
'''
前言:这是我自己想出来的方法,我不知道是否有人用过这种写类的方法,我也没想出一个什么样名字来称呼它,反正我叫它简化类
之所以称之为简化类,是因为我没办法实现多重继承,但类的基本继承,重写还是实现了的
如果有兴趣的朋友请留下您保贵的建议或加我QQ:410177254 或 微信:carmelcarmen,让这个写法能更有创造性一些
'''
#Python简化类例三:实现类实例的事件定义
def ClassTest3():
def p() :pass
p.val=0
p.valChange=None #实例存放事件的变理
def o():pass
def setVal(value):
if p.val==value:return
oldVal=p.val
p.val=value
if p.valChange!=None : p.valChange(oldVal,value) #运行事件
o.setVal=setVal;del setVal
def getVal():
return p.val
o.getVal=getVal;del getVal
def setValChangeFun(fn):
p.valChange=fn #设置类实例的val变量变化事件,如果fn==None 即为删除事件
o.setValChangeFun=setValChangeFun;del setValChangeFun
return o
def abc(oldVal,newVal):
'''该函数并不是类中的部份,而是做为类实例的事件的设置'''
print("val变量发生改变,改变前 : %d, 改变后 : %d"%(oldVal,newVal))
t3=ClassTest3()
t3.setValChangeFun(abc)
t3.setVal(4) #会打印出: val变量发生改变,改变前 : 0, 改变后 : 4
t3.setVal(4) #不会打印,因为val并未发生改变
Python简化类例三:实现类实例的事件定义
最新推荐文章于 2024-07-04 04:27:27 发布