摘要: 在前面装饰器一章中,提过一句话,装饰器也可以用于类中,确实可以的,并且python的类也内置了一部分装饰器。并且在前两章的hasattr等四个内置方法中,也说过其用法很类似装饰器,到底在类中可以用装饰器不呢?还有具体有哪些内置的装饰器呢?还记得property吗?之前有个例子里,在类里定义好方法后,再用property就可以通过属性设置属性 先看一个普通的类 阅读全文
posted @ 2017-10-29 16:18 Eeyhan 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 学到这里了,相信你应该对__init__非常熟悉了,就是构造器呗,当类被实例化时初始化的作用 但__init__其实不是实例化一个类的时候第一个自动调用的方法。当实例化一个类时,最先被调用的方法 其实是 __new__ 方法 __new__ __new__方法接受的参数虽然也是和__init__一样,但__init__是在类实例创建之后调用,而 __new__方法正是创建这个类实例的方法。依照Python官方文档的说法,__new__方法主要是当你继承一些不可变的class时(比如int, str, tuple), 提供给你一个自定义这些类的实例化过程的途径。还有就是实现自定义的metaclass。(前几篇博文提到过的元类) 阅读全文
posted @ 2017-10-29 13:08 Eeyhan 阅读(202) 评论(1) 推荐(0) 编辑
摘要: 不急着进入正题。先动手完成一个小程序: 设计一套简单的服务开启关闭程序,每次开启或关闭都得打印服务当前的状态: class Server(object): 阅读全文
posted @ 2017-10-28 16:39 Eeyhan 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 经典类 1.什么是经典类 就是在使用class关键词时,括号内不添加object类的就叫经典类,前面的博文里是绝对解析过的,所以你应该知道,经典类现在已经仅存在于python2了,因为python3不管你给没给object都会自动继承object类,其采用MRO算法深度优先搜索。Python 2.x中默认都是经典类,只有显式继承了object才是新式类 阅读全文
posted @ 2017-10-27 15:52 Eeyhan 阅读(176) 评论(0) 推荐(0) 编辑
摘要: type函数的隐藏属性 相信大家都知道内置函数type是用来查看对象的数据类型的。例: 阅读全文
posted @ 2017-10-26 23:44 Eeyhan 阅读(211) 评论(1) 推荐(0) 编辑
摘要: 声明:本篇文章仅仅以游戏《绝地求生》作为一个参考话题来介绍面向对象编程,只是作为学术引用,其制作的非常简易的程序也不会作为商业用途,与蓝洞公司无关。 阅读全文
posted @ 2017-10-25 21:01 Eeyhan 阅读(762) 评论(0) 推荐(1) 编辑
摘要: 1.什么是定制魔法方法 首先定制是什么意思呢?其实就是自定义了,根据我们想要的要求来自定义。而在python中,其实那些所谓的内置函数,内置方法,内置属性之类的其实也是自定义出来的,不过是龟数开发python时已经给出了,已经自带了基本能想到的功能都带有了,换句话就是已经给我们事先定义好了,要用的话,直接拿来就用就是,不需要我们自己再去定义。定制魔法方法就是自定义魔法方法了。但是必须遵循定制魔法方法的一些规则 阅读全文
posted @ 2017-10-21 21:13 Eeyhan 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 首先,本人也是刚接触python不久,没有老鸟的经验和技能,大佬勿喷,以下所有皆是本人对python的理解 python,是一种解释型(高级)的,面向对象的,带有动态语义的高级程序设计的开源语言。1989年,Guido von Rossum(荷兰人)人称龟叔,他在圣诞节时因为无聊而开发出来的,详细的python发展史介绍可以百度或Google,已经很多了,不再赘述。 python是从2015年在国内火起来,之前为什么不火,因为国内情况一直稍落于外国强国,并且在刚开始的python其实很多缺点,因为是门高级语言,每次运行代码都需要解释器解释或者叫翻译一次才可以执行代码,速度比C等开发语言慢很多,直到后面出现两大转折点: 阅读全文
posted @ 2017-10-18 20:05 Eeyhan 阅读(182) 评论(0) 推荐(0) 编辑
摘要: __new__(cls[, ...]) __new__ 是在一个对象实例化的时候所调用的第一个方法 它的第一个参数是这个类,其他的参数是用来直接传递给 __init__ 方法 __new__ 决定是否要使用该 __init__ 方法,因为 __new__ 可以调用其他类的构造方法或者直接返回别的实例对象来作为本类的实例,如果 __new__ 没有返回实例对象,则 __init__ 不会被调用 __new__ 主要是用于继承一个不可变的类型比如一个 tuple 或者 string 阅读全文
posted @ 2017-10-18 14:44 Eeyhan 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章了解了魔法方法,相信你已经归魔法方法至少有个概念了,那么今天就进一步的认识魔法方法。说这个之前,大脑里先回忆一下算术操作符。 什么是算术操作符?忘记没有?忘记了的自己倒回去看我前面的博文或者自己网上找吧。 +,-,*,/,**,//,%(用法忘记了的回去看)是不是一般就这些,那么你有没有想过,为什么使用算术符里的某一个符号时程序就会乖乖听话的怎么操作?难道它里面嵌入了一个计算机器功能?难道它一被龟数开发出来就可以运算?都不是很准确,而是因为—魔法方法 不饶弯子了,看图: 阅读全文
posted @ 2017-10-18 13:49 Eeyhan 阅读(189) 评论(0) 推荐(1) 编辑