摘要: new new()方法是构造方法,init()方法是初始化方法,new()在init()之前执行,由new()创建一个对象,供init()初始化。 new()才是真正的实例化方法,为类提供外壳制造出实例框架,然后调用该框架内的构造方法init()使其丰满。 单例模式 下面创建的两个对象其实在同一块内 阅读全文
posted @ 2019-08-18 11:06 tianqibucuo 阅读(904) 评论(0) 推荐(0) 编辑
摘要: 1.hasattr 2.getattr 当要反射自己模块中的变量(或函数,可以借助sys模块和__name__实现。使用变量__name__是因为在自己模块运行时,__name__就是__main__, 而如果该模块是被到入模块时,确保反射的还是此模块的变量(或函数)。 3.setattr(x,y, 阅读全文
posted @ 2019-08-17 21:15 tianqibucuo 阅读(117) 评论(0) 推荐(0) 编辑
摘要: python中接口类和抽象类没有严格区分,如果要创建一个接口或抽象类,只需要做一些修饰: 在抽象方法前加@abstractmethed,该类的子类就必须定义(重写)该方法。 鸭子类型 调用不同的子类将会产生不同的行为,而无须明确知道这个子类实际上是什么,这是多态的重要应用场景。 但python是动态 阅读全文
posted @ 2019-08-17 15:04 tianqibucuo 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 迭代器-Iterator 迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 可迭代对象: 以直接作用于 for 循环的数据类型有以下几种: 一类是集合数据类型,如 list 、 tuple 阅读全文
posted @ 2019-08-15 10:25 tianqibucuo 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 1.装饰器作用 在不改变函数调用方式的基础上,在函数前后添加功能。 2.语法糖 位置放在被装饰函数上面 3.被装饰函数带返回值 4.被装饰函数带参数 在需要加入参数的位置全部加入参数 5.装饰器固定模式 6.functiools.wraps() 作用:恢复被装饰函数的属性,即用户可以按照原来的方式使 阅读全文
posted @ 2019-08-14 12:59 tianqibucuo 阅读(145) 评论(0) 推荐(0) 编辑
摘要: java c++ 阅读全文
posted @ 2019-05-18 13:18 tianqibucuo 阅读(184) 评论(0) 推荐(0) 编辑