摘要: 一、模块的循环导入问题 解决方案一:把循环导入的语句放到名字定义的后面 例如: M1.py M2.py print(‘正在导入m1’) print('正在导入m2') x=‘m1’ y='m2' from m2 import y from m1 import x 解决方案二:将循环导入语句放到函数内 阅读全文
posted @ 2018-08-10 17:17 zhouhao666 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 一、什么是模块 模块就是一系列功能的集合体 模块有三种来源: 1、内置的模块 2、第三方模块 3、自定义模块 模块的格式: 1.使用python编写的.py文件 2、已被编译为共享库或DLL的C或C++扩展 3、把一系列模块组织到一起的文件夹(注:文件夹下有一个—init—.py文件,该文件夹称之为 阅读全文
posted @ 2018-08-10 17:16 zhouhao666 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 一、模块的循环导入问题 解决方案一:把循环导入的语句放到名字定义的后面 例如: M1.py M2.py print(‘正在导入m1’) print('正在导入m2') x=‘m1’ y='m2' from m2 import y from m1 import x 解决方案二:将循环导入语句放到函数内 阅读全文
posted @ 2018-08-10 17:16 zhouhao666 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 装饰器补充:wraps装饰器应该加到装饰器最内层的函数上 一、什么是函数递归 函数的递归调用时函数嵌套调用的一种特殊形式,在调用一个函数的过程中又直接或者间接地调用该函数本身,称之为函数的递归调用。 二、递归调用必须有俩个明确的阶段: 1.回溯:一次次递归调用下去,说白了就一个重复的过程,但需要注意 阅读全文
posted @ 2018-08-10 17:12 zhouhao666 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 一、前提:生成器就是一种自定义的迭代器,本质就是迭代器 但凡函数内包含yield关键字,调用函数不会执行函数代码,会得到一个返回值,该返回值就是生成器对象 next会触发函数的执行,知道碰到一个yield停下来,并且将yield后的值当做本次next 的结果返回 二、yield的表达式形式的应用:x 阅读全文
posted @ 2018-08-10 17:12 zhouhao666 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 一、什么是迭代器 1、迭代器指的是迭代取值的工具 2、迭代是一个重复的过程,每一次重复都是基于上一次的结果而来 单纯的重复不是迭代 迭代:重复+每次重复都是基于上一次的结果而进行的 二、为何要用迭代器 迭代器提供了一种通用的且不依赖于索引的迭代取值方式 三、可迭代的对象iterable;但凡内置有— 阅读全文
posted @ 2018-08-10 17:11 zhouhao666 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 一.函数是第一类对象:指的是函数名指向的值(函数)可以被当做数据去使用。func=函数的内地址1.可以被引用2.可以当作参数传给另外一个函数3.可以当作一个函数的返回值。4.可以当作容器类型的元素。二.函数嵌套分为俩大类1.函数的嵌套调用:在调用一个函数过程中,其内部代码又调用了其他函数2.函数的嵌 阅读全文
posted @ 2018-08-10 17:10 zhouhao666 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 包的使用 一、在python2中,包下必须有一个__init__.py文件,而python3中即便是没有也不会报错 二、首次导入包,发送三件事, 1. 以包下的__init_.py文件为基准来产生一个名称空间 2. 执行包下的__init_.py文件的代码,将执行过程中产生的名字都丢到名称空间中 3 阅读全文
posted @ 2018-08-10 17:08 zhouhao666 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 一.定义函数的三种形式: 1.1无参函数 def foo(): print('from foo') foo() 1.2有参函数 def bar(x,y): print(x,y) bar(1,2) 1.3空函数 二.调用函数的三种形式 2.1语句形式 2.2表达式形式 2.3可以当做参数传给另外一个函 阅读全文
posted @ 2018-08-10 16:17 zhouhao666 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 编程语言分类: 1. 机器语言:用二进制指令编程,本质是直接操作硬件。 优点:执行效率高 缺点:开发效率低,学习难度高 2.汇编语言:用英文标签代替二进制指令,本质也是直接操作硬件。 优点:开发效率高 缺点:仍然没有改变直接操作硬件的本质,执行效率高,但不如机器语言高 3.高级语言:用人类的字符去编 阅读全文
posted @ 2018-08-10 16:16 zhouhao666 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 编程语言分类: 1. 机器语言:用二进制指令编程,本质是直接操作硬件。 优点:执行效率高 缺点:开发效率低,学习难度高 2.汇编语言:用英文标签代替二进制指令,本质也是直接操作硬件。 优点:开发效率高 缺点:仍然没有改变直接操作硬件的本质,执行效率高,但不如机器语言高 3.高级语言:用人类的字符去编 阅读全文
posted @ 2018-08-10 15:01 zhouhao666 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 一、什么是装饰器 器:指的是具备某一功能的工具。 装饰:指的是为被装饰器添加新功能。 装饰器就是用来为被装饰器对象添加新功能的工具(注意:装饰器本身可以是任意可调用对象,被装饰的对象也可以是任意可调用对象) 二、为何要用装饰器 开放封闭原则:封闭指的是对修改封闭,对扩展开放 装饰器的实现必须遵守俩大 阅读全文
posted @ 2018-08-10 15:01 zhouhao666 阅读(81) 评论(0) 推荐(0) 编辑