上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要: 练习二:在元类中控制自定义的类无需__init__方法 利用__call__方法 阅读全文
posted @ 2018-03-28 23:17 xudachen 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 在元类中控制把自定义类的数据属性都变成大写 找到数据属性,然后对数据属性进行操作, 阅读全文
posted @ 2018-03-28 23:05 xudachen 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 一、单例模式 可以看出,两个对象的内存地址不一样,但是对象的属性是一样的,能不能只实例化一次,然后其它对象都引用它,就像a =1 b =1 ,,我们发现,他们指向的是同一块内存地址,答案是可以的,这就是单例模式, 以上就是实现单例模式的一种方式,class,下面介绍第二种方式,通过元类实现单例模式 阅读全文
posted @ 2018-03-28 22:28 xudachen 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 一、知识储备 1、__call__方法 实例化时传参 元类内部也应该有一个__call__方法,会在调用Foo时触发执行 Foo(1, 2, x=1)相当于 Foo.__call__(Foo,1,2,x=1) 可以看出,Chinese类实例化会触发它的父类的__call__方法, 我们先看一下__c 阅读全文
posted @ 2018-03-27 22:51 xudachen 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 一般定义方法: 把metaclass元类换成自己定义的类Mymeta 对Mymeta进行定义: 在Mymeta中可以设置控制条件,对生成的类进行控制,如: 对注释进行控制: 如果没有注释或者注释为空,就会报错,报错为: 加上注释就不会报错了。 阅读全文
posted @ 2018-03-27 22:17 xudachen 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 一、储备知识exec 参数1:字符串形式的命令 参数2:全局作用域(字典形式),如果不指定默认就使用globals() 参数3:局部作用域(字典形式),如果不指定默认使用locals() 示例代码如下: l为局部变量,执行后会增加z的键值对,g为全局变量,x的值会修改为10,m不存在,会添加进g p 阅读全文
posted @ 2018-03-27 21:02 xudachen 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 一、__str__方法 示例代码: 实例化不会触发__str__方法,但是打印的话就会触发,如下: 执行了,但是TypeError,我们return一个字符串就可以了,如: 二、__del__方法 实例代码如下: 定义一个Open类,模仿文件打开操作, 可以看出,实例化触发了 __del__方法, 阅读全文
posted @ 2018-03-27 20:10 xudachen 阅读(1909) 评论(0) 推荐(0) 编辑
摘要: 一、isinstance(obj,cls): 检查obj是否是类 cls 的对象 代码示例: 二、issubclass(sub, super): 检查sub类是否是 super 类的派生类 代码实例: 三、item系列 1.查询 触发了第一个方法 如果 这时候可以修改下代码: 这样就不会报错了,不存 阅读全文
posted @ 2018-03-22 22:07 xudachen 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 一、根据用户的输入,执行对象方法 例如: 有用户选择的方法的话执行,没有的话就不会执行 还可以对上述代码进行改进,如下: 阅读全文
posted @ 2018-03-22 21:33 xudachen 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 一、引子,想根据用户的输入来判断输出的属性 代码如下: 结果报错,是因为方式错误,name为字符串,所以说报错,那有没有方法实现呢,这就用到反射方法,如下: 二、通过字符串映射到对象的属性 1、查询是否有某个属性 True说明有这个属性 2、获取某个属性 但是如果没有某个属性,就会报错 如果不让让他 阅读全文
posted @ 2018-03-22 13:13 xudachen 阅读(122) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页