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中如何制作创意几何风目录
  • 热门搜索
    9月份适合去哪里旅游 益阳旅游 浙江省旅游地图 新西兰旅游价格 青岛的旅游景点 台湾岛旅游网 恒大世纪旅游城 首都旅游 沙湖旅游景点介绍 鼓浪屿旅游区