复习

'''
1.生成器中的send方法
-- 给当前停止的yield发生信息
-- 内部调用__next__()取到下一个yield的返回值
2.递归:函数的(直接,间接)自调用
-- 回溯 与 递推
-- 重点:出口 | 递归的条件
3.匿名函数
-- lambda 参数列表: (返回值, 返回值)
-- 应用场景:1.用变量接受 | 2.结合内置函数使用
-- add = lambda n1, n2: n1 + n2
4.内置函数
dic = {'Bob': 88888, 'Tom': 66666} | [('Bob', 88888), ('Tom', 66666)]
-- max(iter, key=lambda x: x) | min | map | reduce | sorted -- bin | oct | hex
-- max min sum pow abs
-- len next iter range enumerate
'''

今日内容

'''
1.模块:模块的概念
2.导入的方式:import | from import
-- 名称空间***** | 绝对导入 | 起别名
3.环境变量:sys.path *****
4.导入模块的顺序
5.循环导入:模块间相互导入 ******
'''

模块

"""
常见的四种模块:module
1.使用python编写的.py文件
2.把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)
3.使用C编写并链接到python解释器的内置模块
4.已被编译为共享库或DLL的C或C++扩展
""" # 1、什么是模块:一系列功能的集合体 # 2、为什么会出现模块:很多相似的功能,要统一管理,将这些功能放在一个文件中,该文件就是管理这些功能的集合体,我们命名为模块 # 3、怎么使用模块
# -- 在要使用模块功能的文件中导入模块:import 模块名 - 模块名:用来管理一系列功能的文件名 # 4、在哪使用模块
# -- 在所有要使用模块中功能的文件中导入并使用模块

导入模板完成的三件事

# 首次导入
import 模块名 # 1.将被导入的模块编译形成对应的pyc文件
# 2.进入模块,从上至下执行模块中的代码,将产生的所有名字存放在该模块文件的全局名称空间中
# 3.在使用模块的文件中,产生一个与模块名(模块文件名)同名的名字,指向模块的全局名称空间 # 再次导入 # 不再执行导入模块的前两步,只会走第三步:在当前模块中产生一个名字,指向第一次导入在内存中产生的全局名称空间

起别名

import 模块名 as 别名

# 重点:导入一旦起别名,原模块名变量失效,本质只产生了别名变量指向模块文件的全局名称空间

模块的分类

# 大方向:内置(built-in) | 自定义(系统提供 | 第三方提供 | 自己自定义)

模块的加载顺序

# 内存 > 内置 > sys.path (安装环境变量中路径的先后顺序逐一加载)

环境变量

# 环境变量:存放路径的list,第一位默认一定是当前执行文件所在的路径
import sys
# sys.path就是环境变量 # 清空环境变量:所有导入都不能使用了
sys.path.clear() # 添加指定路径到环境变量
sys.path.append()
sys.path.insert()

from...import语法导入

# 导入完成的三件事
# 1.将被导入的模块编译形成对应的pyc文件
# 2.进入模块,从上执行执行模块中的代码,将产生的所有名字存放在该模块文件的全局名称空间中
# 3.在导入模块的文件中形成(一个或多个)名字指向模块全局名称空间中的(一个或多个)具体名字 from 模块名 import 模块中的名字1, ..., 模块中的名字n
from 模块名 import 名字 as 别名 # from...import导入依赖环境变量 sys.path

from...import *

# 模块中默认会添加 __all__ ,__all__ 就是管理模块中能被 * 导入的变量们
# __all__可以自定义,自定义 * 能导入的变量们, __all__的list中名字全部可以自定义
__all__ = ['a', 'b', 'c', 'd_', '_e'] # 系统默认添加的__all__中不会纳入 _开头的名字
# -- 所以默认在外界通过from...import *无法导入_开头的名字
# -- _开头的名字对from...import *是隐藏的,指名道姓依然可以被外界导入使用

链式导入

# t1导入m1,m1导入m2,m2导入m3

# 执行流程:右键执行t1,在t1导入m1模块的地方直接进入m1,去执行m1,同理在m1执行过程中遇到导入m2,会马上进入m2,去执行m2,一直到m3,m3执行完毕,
会回到m2中导入m3的语句,接着往下执行m2,m2执行完毕回到m1,以此类推返回到t1 # 在整个执行流程中,遇到任何模块的二次导入,都是直接引用内存中的名称空间,不会再次进入模块

循环导入

# 循环导入的问题点:名字没有产生就使用名字
# 解决循环导入:先产生名字,在导入模块
# -- 将会产生循环导入的模块,导入语法延后 - 延后导入 # 问题
# m1.py
import m2
print(m2.y)
x = 666 # m2.py
import m1
print(m2.x)
y = 888 # 解决
# m1.py
x = 666
import m2
print(m2.y) # m2.py
y = 888
import m1
print(m2.x)

day16模块,导入模板完成的三件事,起别名,模块的分类,模块的加载顺序,环境变量,from...import语法导入,from...import *,链式导入,循环导入的更多相关文章

  1. 微信小程序:开发之前要知道的三件事

    前言 微信之父张小龙在年初的那次演讲中曾表示:"我自己是很多年的程序员,我觉得我们应该为开发的团队做一些事情".几个月后,微信正式推出微信应用号(即微信小程序),在互联网中掀起了又 ...

  2. <转>离婚前夜悟出的三件事

    文/铁眼(简书作者)原文链接:http://www.jianshu.com/p/832be4f659a0?utm_campaign=hugo&utm_medium=reader_share&a ...

  3. 20170225-第三件事:FR0002测试

    第三件事:FR0002测试             MATNR WERKS BERID 800000217 I010               问题,上for all entrys…       1 ...

  4. C# 并行编程之早起三件事

    故事背景 透着纱的窗外的阳光, 又是一个星期一. 慢慢来 一看时间, 还早, 那么蹦跶起来 穿衣 刷牙 洗脸 用代码来说的话, 应该是这样: // Program.cs using System; u ...

  5. MVC中 _ViewStart _Layout Index三个页面中的加载顺序

    MVC学习中忽然想到一个问题.. 在访问一个Index.cshtml页面时, MVC的加载顺序是怎么样的呢? 首先说下我的结论 . _ViewStart.cshtml . Index.cshtml . ...

  6. wordpress模板加载顺序汇总

    我们要创建一个新的wordpress模板需要先了解有哪些页面模板,这些页面模板的文件是什么?它们是怎么工作的?下面ytkah汇总了一些常用的wordpress模板结构方便大家查找 首页 首先WordP ...

  7. nodejs 模块加载顺序

    nodejs 模块加载顺序 一.当引入模块的形式是 require('lt') 时(1).先找当前文件夹下的node_modules文件夹下的lt文件夹下的package.json 文件指定的main ...

  8. WebForm中搭配母版页和用户控件页时候的事件加载顺序

    在生产环境中,一个内容页(aspx)可能会包含数个用户控件(ascx),而每个控件可能都会涉及到数据库访问. 如果在内容页.母版页.控件页中各自使用自己的数据库访问方法,会造成很大的运行成本. 这样的 ...

  9. easyui控件的加载顺序

    使用easyui做布局时,会模仿窗口程序界面,做出一些较复杂的布局.按由外层到内层的顺序: (最外层)panel->tabs->tabs1 ->tabs2->layout-&g ...

随机推荐

  1. 出现( linker command failed with exit code 1)错误总结(http://blog.csdn.net/hengshujiyi/article/details/21182813)

    这种问题,通常出现在添加第三方库文件或者多人开发时. 这种问题一般是找不到文件而导致的链接错误. 我们可以从如下几个方面着手排查. 1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误. ...

  2. ES调优

    ES Connection timed out,调优方向 1. 使用游标滚动查询 scrollId 游标id searchResponse.getScrollId() scroll 设置游标的保留时间 ...

  3. MySQL免安装版 配置

    1. MySQL官方网址:https://dev.mysql.com/downloads/mysql/ 2. 将下载文件解压到一个文件夹:D:\AZ\ 3. 配置环境变量:Path:D:\AZ\mys ...

  4. Python 基本数据类型详解

    1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647在64位系统上,整数的位数为64位,取值范围为-2* ...

  5. nacos 动态刷新@ConfigurationProperties

    使用@ConfigurationProperties 可以替换@value   @ConfigurationProperties @Value 注解功能 可以批量注入配置文件中的属性 只能一个个指定注 ...

  6. SSM常用配置文件头模板

    web.xml文件头 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&q ...

  7. 安装mod_rpaf让apache获取访客真实IP

    安装mod_rpaf让apache获取访客真实IP 安装mod_rpaf让apache获取访客真实IP 作者:朱 茂海 /分类:Apache  字号:L M S     mod_rpaf是apache ...

  8. expect实现远程主机自动执行命令脚本

    2014年第一个脚本,哈哈!!! expect实现远程主机自动执行命令脚本: #!/usr/bin/expect -- if { [llength $argv] < 4 } { puts &qu ...

  9. mysql的安装和简单的操作

    一.MySQL的安装和简单操作 1.了解MySQL MySQL有两个软件 ---服务器软件     - socket服务端     - 本地文件操作 - 解析指令(mysql语句)---客户端软件   ...

  10. 网络编程基础-socket的简单实用

    目录 1.软件开发架构 客户端与服务端的作用 C/S架构: B/S架构: 2.网络编程 3.互联网协议 socket: socket的具体工作流程: socket(套接字)的内置方法 1.软件开发架构 ...