10 2017 档案
摘要:包(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。(前几篇博文提到过的元类)
阅读全文
摘要:不急着进入正题。先动手完成一个小程序:
设计一套简单的服务开启关闭程序,每次开启或关闭都得打印服务当前的状态:
class Server(object):
阅读全文
摘要:经典类
1.什么是经典类
就是在使用class关键词时,括号内不添加object类的就叫经典类,前面的博文里是绝对解析过的,所以你应该知道,经典类现在已经仅存在于python2了,因为python3不管你给没给object都会自动继承object类,其采用MRO算法深度优先搜索。Python 2.x中默认都是经典类,只有显式继承了object才是新式类
阅读全文
摘要:type函数的隐藏属性
相信大家都知道内置函数type是用来查看对象的数据类型的。例:
阅读全文
摘要:声明:本篇文章仅仅以游戏《绝地求生》作为一个参考话题来介绍面向对象编程,只是作为学术引用,其制作的非常简易的程序也不会作为商业用途,与蓝洞公司无关。
阅读全文
摘要:1.什么是定制魔法方法
首先定制是什么意思呢?其实就是自定义了,根据我们想要的要求来自定义。而在python中,其实那些所谓的内置函数,内置方法,内置属性之类的其实也是自定义出来的,不过是龟数开发python时已经给出了,已经自带了基本能想到的功能都带有了,换句话就是已经给我们事先定义好了,要用的话,直接拿来就用就是,不需要我们自己再去定义。定制魔法方法就是自定义魔法方法了。但是必须遵循定制魔法方法的一些规则
阅读全文
摘要:首先,本人也是刚接触python不久,没有老鸟的经验和技能,大佬勿喷,以下所有皆是本人对python的理解
python,是一种解释型(高级)的,面向对象的,带有动态语义的高级程序设计的开源语言。1989年,Guido von Rossum(荷兰人)人称龟叔,他在圣诞节时因为无聊而开发出来的,详细的python发展史介绍可以百度或Google,已经很多了,不再赘述。
python是从2015年在国内火起来,之前为什么不火,因为国内情况一直稍落于外国强国,并且在刚开始的python其实很多缺点,因为是门高级语言,每次运行代码都需要解释器解释或者叫翻译一次才可以执行代码,速度比C等开发语言慢很多,直到后面出现两大转折点:
阅读全文
摘要:__new__(cls[, ...])
__new__ 是在一个对象实例化的时候所调用的第一个方法
它的第一个参数是这个类,其他的参数是用来直接传递给 __init__ 方法
__new__ 决定是否要使用该 __init__ 方法,因为 __new__ 可以调用其他类的构造方法或者直接返回别的实例对象来作为本类的实例,如果 __new__ 没有返回实例对象,则 __init__ 不会被调用
__new__ 主要是用于继承一个不可变的类型比如一个 tuple 或者 string
阅读全文
摘要:上一篇文章了解了魔法方法,相信你已经归魔法方法至少有个概念了,那么今天就进一步的认识魔法方法。说这个之前,大脑里先回忆一下算术操作符。
什么是算术操作符?忘记没有?忘记了的自己倒回去看我前面的博文或者自己网上找吧。
+,-,*,/,**,//,%(用法忘记了的回去看)是不是一般就这些,那么你有没有想过,为什么使用算术符里的某一个符号时程序就会乖乖听话的怎么操作?难道它里面嵌入了一个计算机器功能?难道它一被龟数开发出来就可以运算?都不是很准确,而是因为—魔法方法
不饶弯子了,看图:
阅读全文
摘要:也许上一篇博文提到的property内置函数的用法你还觉得记忆犹新,那么有没有更多的类似的方法呢?有的,就是本篇文章要说的魔法方法
魔法方法
1.什么是魔法方法
(其实前面已经提到多次,每次我都是说暂且不谈,后面会提到,在这里终于填坑了)
总是被双下划线包围的方法,比如__init__
魔法方法是面向对象的python的一切。有句话叫“如果你不清楚魔法方法,那么你还没能意识到面向对象的python的强大”
所以在python中,魔法方法是很重要的
阅读全文
摘要:issubclass(cls, class_or_tuple, /)
1.基本属性:
阅读全文
只有注册用户登录后才能阅读该文。
摘要:继承
1.什么是继承:
字面意是子女继承父母的家产或者特性等。而在编程里继承是指子类继承父类(基类,超类,都一个意思)的属性和方法
2.怎么继承:
说个简单的例子,在前面里说到了定义类时使用object参数后就带有了object的属性和方法,这种自然带有的属性和方法就是继承。
所以,继承的方法:在事先有父类的前提下,定义子类时,把父类类对象以参数形式传入就行
阅读全文
摘要:在上一篇博文里,传入参数时,是在实例化对象后且在调用方法时才传入参数,感觉是不是有点繁琐对吧?可以在实例化的时候就传入参数吗?可以的,这就是本篇博文的要讲到的构造器——__init__(两边双下划线)
__init__(注意两边是双下划线,后面不再提示)
1.什么是__init__
初始化方法,也叫构造器,会在特定条件下自动调用其内的方法
除了有构造器的作用,和其他方法没什么区别
2.例子:
class People(object):
def __init__(self,name,age,sex):
self.name=name
self.age=age
阅读全文
摘要:上一篇文章已经看到了如何定义类,但是我想你应该有很多疑惑的吧?最好的学习方法就是不断思考,不断问为什么,不断和已有知识做类比,从中获得理解。那么这一篇博文就是从解惑答疑中进一步认识类。
解惑答疑
我按照我的想法列出了几个主要的疑问:
阅读全文
摘要:面向对象
1.什么是面向对象
阅读全文
摘要:进阶。
装饰器
1.什么是装饰器?
个人理解:装饰器又叫语法糖,指的是对原程序内部整个代码不作任何更改,在外部写好一个带某种功能的程序来作用于原程序,对其进行修饰或者叫装饰,这就是装饰器。
还有两种理解是:
1).在代码运行期间动态增加功能的方式,称之为“装饰器”
2).装饰器,允许向一个现有的对象添加新的功能,同时又不改变其结构。作为现有对象的一个包装
2.格式:
阅读全文
摘要:前提必备
不急着进入正题,在前面函数作用域那一章介绍了闭包,全局变量局部变量,这里再看几个简单的闭包案例:
1):不带参数
阅读全文
摘要:你可能会想,卧槽这标题取的,前面不是说异常就是报错吗?异常还能运用?
是的,异常确实可以运用,可以刻意制造异常,在出现异常时捕获异常并对异常处理,所以进入本篇博文的话题—异常处理
异常处理:
异常处理分两个,捕获异常和抛出异常
阅读全文
摘要:异常
1.什么是异常:
异常即报错,就像前面例题解析中出现的报错,就是异常,python运行时出现的错误就是异常
2.都有哪些异常:
阅读全文
摘要:递归
1.什么是递归:
其实前面都提过,但没有详细讲。多次调用自身就叫递归
看图,这种就叫递归
阅读全文
摘要:匿名函数进阶
前一章已经说了匿名函数,匿名函数还可以和其他内置函数结合使用
1.map
阅读全文
摘要:在这个互联网时代,大家都喜欢匿名,匿名上网,匿名登录,匿名操作等等,都不喜欢实名对吧?(虽然说现在实名制已经快到来,题外话,扯远了),当然python里也有个不喜欢实名的,它的功效优点特殊,说强大吧?它也有限制,说没什么用吧?它又能干很多事,它就是匿名函数
匿名函数:lambda
1.什么是匿名函数:
其实前面也提到一点点,就是不需要使用def
阅读全文
摘要:闭包(lexical closure)
什么是闭包前面已经说过了,但是由于遗留问题,所以单独作为一个章节详解讲解下
不多说,看例子:
def funx(x):
def funy(y):
return x*y #此时的funy函数对外层funx函数的变量调用,则称为闭包
return funy
阅读全文
摘要:前面你看到嵌套两层的函数,也许你有感而发,想来点刺激的对不?那么如果每层内的变量名如果相同会怎样?拿个例子看下就知道:
报错了,报错信息大意是,本地变量‘num’引用前没有被赋值定义。这咋回事,我外层不是定义了吗?这个问题就涉及到今天要说的话题——函数作用域
阅读全文
摘要:函数文档
1.什么是函数文档:
就是放在函数体之前的一段说明,其本身是一段字符串,一个完整的函数需要带有函数文档,这样利于他人阅读,方便理解此函数的作用,能做什么运算
2.怎么查看函数文档:
function.__doc__
注意:不加小括号
阅读全文
摘要:作为开发,那么我们前面学的那些知识其实够了,但是不够精简,也不好维护,比如需要打印斐波那契数列:
而当我们需要再次打印斐波那契数列,又要把这段代码加上,是不是很烦,有没有方法可以解决,当然可以,那就是自定义函数,你把斐波那契数列定义为一个函数,然后需要时调用函数就行,这样一劳永逸对不对?
阅读全文
摘要:文件I/O操作
1.什么是文件I/O操作
首先I/O(input/output),即输入/输出端口,然后文件,大家应该都是是什么,一个数据,一个txt或者html文档就是一个文件。文件操作就是对文件进行读写删除等的操作。文件I/O操作,个人理解,就是与用户有交互式的文件操作
文件也是一个可迭代对象
阅读全文
摘要:类型转换:
1.str(),repr(),format():将非字符串数据转换为字符串
str():对象序列化的结果,相当于print输出
repr():程序中某个对象精确值
format():利用特定格式转换为字符串,format函数用法见后面
2.int():转为整数形
阅读全文
摘要:os
1.作用:
因为客户基本都是使用不同的操作系统,在不同的系统下,要完成一个项目,那必须跨平台操作,而python本来就是一个跨平台的语言,而有了os模块,则不需要在意什么系统。并且os模块是用于文件/目录的操作,在很多时候,我们需要对磁盘上的目录或者文件进行操作,如果手动操作那么就已经违背我们的宗旨了,要开发就整个过程都开发,整个过程都自动化完成,所以,os模块在这里作用很大
阅读全文
摘要:1.使用列表解析输出结果:[(0,0),(0,2),(2,0),(2,2)]
方法1:
方法2:
方法3:
阅读全文
摘要:是的,我是想到什么知识点就说什么,没有固定的主题,我的标题都是在写完博客再给的。本篇博文说说列表进阶话题。其实列表应该是比较熟悉的了,而毫不夸张的说,在实际的开发中,列表也是使用的最多的,以后你会体会到我说的这句话的。
列表解析
1.什么是列表解析:
根据已有列表,高效生成新列表的方式,还有另一个叫法是叫列表推导式
2.作用:
列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置在列表中
阅读全文
摘要:decimal
1.作用:
用于浮点数计算。相比内置的二进制浮点数实现 float这个类型有助于 金融应用和其它需要精确十进制表达的场合,控制精度,控制舍入以适应法律或者规定要求,确保十进制数位精度,或者用户希望计算结果与手算相符的场合。Decimal 重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。 高精度使 Decimal 可以执行二进制浮点数无法进行的模运算和等值测试
阅读全文
摘要:random模块用于生成随机数
2.常用函数:
random:用于生成一个0到1的随机符点数: 0 <= n < 1.0
uniform(a, b):用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a
阅读全文
摘要:关键词
1.什么是关键词:
就是系统已经定义好的一些关键词语法,可以直接使用,很明显的就是在IDE里这些关键词会高亮显示的就是
2.有哪些关键词:
前面我们一直在说关键词,内置函数,到底有哪些关键词对吧?怎么查看有哪些,学了模块之后,我们就可以导入一个keyword模块来查看:
阅读全文
摘要:前面的章节你如果看懂了,基本算是入门了七八了,不过如果你以为python就这么点东西,你觉得很简单啊,那你就错了,真正的东西在后面,前面我说的几大核心其实也不是多么高深多么厉害的,那些东西是基础很常用,所以你必须掌握好,地基打好才好办事,所以才是核心。
从这一章开始将渐渐进入python中关键的东西
python的一个优势是有着大量自带和在线的模块(module)资源,可以提供丰富的功能,在使用这些模块的时候,如果每次都去网站找在线文档会过于耗费时间,结果也不一定准确。因此这里介绍下python自带的查看帮助功能,可以在编程时不中断地迅速找到所需模块和函数的使用方法
阅读全文
摘要:2018年11月14号更新
简单的装饰了下博客,或许这样看起来会让大家看博文学习的时候没那么吃力
阅读全文
摘要:所有的编程语言里都有判断语句和循环语句。
判断语句则是用来分支程序流程的
循环语句则是为了实现一个效果,让程序的规律性的重复操作
不用说,分支和循环自然在python里也是有的
一,条件判断:if,if……else
1.在python里if可以单独出现,也可以和else配套出现,但是else不能单独出
阅读全文
摘要:python几大核心之——字符串
1.什么是字符串
其实前面说到数据类型时说过了,就是带有引号的参数,“”引号内的一切东西就是字符串,字符串又叫文本。
2.创建字符串的两种方式:
阅读全文