Python动态语言特性简单例子

 时间:2024-10-14 05:23:15

1、打开python开发工具IDLE,新建‘pdt.py’文件,编写代码如下:class mytest(): def __init__(self,name): self.name = namemt1 = mytest('张三')print (mt1.name)

Python动态语言特性简单例子

3、通过setattr,动态改变mt1对象的name字段值,代码如下:class mytest(): def __init__(self,name): self.name = namemt1 = mytest('张三')print (mt1.name)setattr(mt1,"name",'李四')print (mt1.name)

Python动态语言特性简单例子

5、接下来写一个复杂点的类中的函数,在调用时候动漤逗庞俄态改变,代码如下;class mytest: def 忧溲枷茫__init__(self,name): self.name = name def before(self): print ('before school') def after(self): print ('after school')class myparpre: def __init__(self,target): self.target = target def __getattribute__(self,name): target = object.__getattribute__(self,'target') atr = object.__getattribute__(target,name) if name == 'before': def fun(*args,**kwargs): print ('school bag') result = atr(*args,**kwargs) return result return fun else: return atr解释一下: myparpre类的对象调用一个方法,或者访问一个字段的时候,都会通过__getattribute__先找到这个对象的变量target,这个变量就是传入的mt1,再通过__getattribute__找到mt1的方法,就可以在mt1方法执行前或执行后,做操作了

Python动态语言特性简单例子

7、F5运行程序,可以看到在执行before函数前做了新操作,而after函数没有变化

Python动态语言特性简单例子
  • 烟台南山学院学生能出去租房子住吗
  • PowerPoint 2016 如何设置默认的形状格式
  • 怎样将公司logo一次性添加到每一个幻灯片?
  • 咪咕音乐怎么设置与其他应用同时播放?
  • ppt中如何制作创意几何风目录
  • 热门搜索
    怎么败火 怎么扫描身份证 毛孔粗大怎么改善 白玉堂是怎么死的 小孩发烧39度怎么办 怎么做饺子 头皮痛是怎么回事 电脑开不开机怎么办 英雄联盟怎么升级快 电脑怎么共享文件