摘要:
包(Package)
这个其实前面也说过的,不过同模块一样,没有具体的解析
1.什么是包
在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,那么此文件夹(目录)即为包,文件夹(目录)名即为包名,但包有一个特征与其他普通文件夹区分,包目录下必须有一个名为__init__.py的文件,__init__.py的内容可以为空,主要是为了避免python将文件夹名当作其他文件夹一样的处理为普通的字符串。一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,表示导入全部定义过的模块。 阅读全文
摘要:
模块
其实前面都说过的,不过还是系统的再说一次,相信学到这,大部分都被搞忘了吧,所以再提一下,也为后面的博文做铺垫
1.什么是模块
在程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护,不断的滚雪球式的增长。为了维护好代码,我们把很多类和函数分组,分别放到不同的python可读的py文件里,这样就解决了问题,让主程序文件的代码减少,很多编程语言都采用这种组织代码的方式,在html标签里也一样,把样式写入css里,要用的使用再链接css样式表就行。而这里的一个.py文件就称之为一个模块(Module)
模块也有另一个名称,库,库又分标准库和第三方库,而内置的库(在安装python时就已经带有的库) 阅读全文
摘要:
定义类的方法,相信你会说,不就是在class语句下使用def () 就是定义类的方法了嘛,是的,这是定义的方法的一种,而且是最普通的方式
首先,我们已经知道有两种方式:
1.普通方法:
1)与类无关的方法 阅读全文
摘要:
在前面装饰器一章中,提过一句话,装饰器也可以用于类中,确实可以的,并且python的类也内置了一部分装饰器。并且在前两章的hasattr等四个内置方法中,也说过其用法很类似装饰器,到底在类中可以用装饰器不呢?还有具体有哪些内置的装饰器呢?还记得property吗?之前有个例子里,在类里定义好方法后,再用property就可以通过属性设置属性
先看一个普通的类 阅读全文
摘要:
学到这里了,相信你应该对__init__非常熟悉了,就是构造器呗,当类被实例化时初始化的作用
但__init__其实不是实例化一个类的时候第一个自动调用的方法。当实例化一个类时,最先被调用的方法 其实是 __new__ 方法
__new__
__new__方法接受的参数虽然也是和__init__一样,但__init__是在类实例创建之后调用,而 __new__方法正是创建这个类实例的方法。依照Python官方文档的说法,__new__方法主要是当你继承一些不可变的class时(比如int, str, tuple), 提供给你一个自定义这些类的实例化过程的途径。还有就是实现自定义的metaclass。(前几篇博文提到过的元类) 阅读全文