一、模块的概念

1、什么是模块:一系列功能的集合体

2、定义模块:创建一个py文件就是一个模块,该py文件名就是模块名

模块的四种存在方式:
使用python编写的.py文件
包:一堆py文件的集合体
使用c编写并链接到python解释器的内置模块
已被编译为共享库或DLL的c或c++扩展

3、使用模块:在要使用模块的文件中,通过导入import 模块名 来导入模块

4、为什么要使用模块:

从文件级别组织代码,是同特性的功能能统一管理
可以使用系统或第三方模块(拿来主义),来提高开发效率

每一个文件都会产生自己的全局名称空间,且互相不影响
多次导入,只会编译执行模块一次,将其加载到内存,之后都是直接对名字的引用。

import module
a =
print(module.b())

二、起别名

# 在任何地方都可以导入模块

def fn():
global m2
import m2
print('>>>',m2.num)
fn()
print(m2.num)

1、通过as关键字可以给模块起别名:模块名一旦起别名,原模块名就不能够使用

# 1、可以简化模块名字
import mmmmmm2 as my_m2
print(my_m2.num) # 2、可以统一功能
cmd = input('数据库选择 1:mysql | 2:oracle:')
if cmd == '':
# import mysql
# mysql.excuse()
import mysql as db else:
# import oracle
# oracle.excuse()
import oracle as db db.excuse()

三、from导入

1、from 模块名 import 名字1,名字2,名字3

from m3 import a,b,_c  # 指名道姓的可以导入以_开头的名字

2、通过*导入:可以将模块中的名字一并导入

from 模块名 import *

导入的是模块中的__all__这个列表
1、系统默认该列表不会收录_开头的名字
2、可以自定义__all__列表来规定外界通过*可以导入的名字 不建议直接导入*,因为可读性差,且极易出现变量名重名
from m3 import *
print(a)
a()

3、from导入起别名:一旦起别名,原名就不能再使用

from 模块名 import 名字1 as 别名1, 名字2 as 别名2

from m4 import aaaa as a, bbbb as b, cccc as c
print(a) #
print(b) #
print(c) #

四、自行文件与模块的区别

1、主文件

import m5

print(m5.money())
from m5 import money
money()
print(money())

2、调用文件

print('m5:我被导入执行的')

def money():
money=1000
print(money)
return 123 # __name__:
# 在py文件作为模块被使用时,__name__为模块名
# 在py文件自执行时,__name__为字符串'__main__' if __name__ == '__main__':
print('m5:我是自执行的')
else:
print('m5:我是被导入执行的')

day15 十五、模块、from导入、起别名的更多相关文章

  1. ES6学习笔记十:模块的导入、导出

    一:模块导入 1) import { 要导入的属性.方法民 } from '模块路径'; 2)该种方法需要有配置文件,指明模块所在路径 import { 要导入的属性.方法民 } from '模块名' ...

  2. Python开发【第十五篇】模块的导入

    的导入语句 import 语句 语法: import 模块名1 [as 模块别名] 作用: 将某模块整体导入到当前模块 示例: import math import sys,os 用法: 模块名.属性 ...

  3. Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块

    Python第十五天  datetime模块 time模块   thread模块  threading模块  Queue队列模块  multiprocessing模块  paramiko模块  fab ...

  4. 第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签

    第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签 标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需 ...

  5. C# DateTime的11种构造函数 [Abp 源码分析]十五、自动审计记录 .Net 登陆的时候添加验证码 使用Topshelf开发Windows服务、记录日志 日常杂记——C#验证码 c#_生成图片式验证码 C# 利用SharpZipLib生成压缩包 Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库

    C# DateTime的11种构造函数   别的也不多说没直接贴代码 using System; using System.Collections.Generic; using System.Glob ...

  6. 二十五. Python基础(25)--模块和包

    二十五. Python基础(25)--模块和包 ● 知识框架   ● 模块的属性__name__ # my_module.py   def fun1():     print("Hello& ...

  7. 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容

     孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...

  8. 孤荷凌寒自学python第二十五天初识python的time模块

    孤荷凌寒自学python第二十五天python的time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 通过对time模块添加引用,就可以使用python的time模块来进行相关的时间操 ...

  9. 第十五章、线程之queue模块的各种队列

    目录 第十五章.线程之queue模块的各种队列 一.Queue 二.LifoQueue堆栈 三.PriorityQueue优先级队列 第十五章.线程之queue模块的各种队列 一.Queue impo ...

随机推荐

  1. [Python设计模式] 第22章 手机型号&软件版本——桥接模式

    github地址:https://github.com/cheesezh/python_design_patterns 紧耦合程序演化 题目1 编程模拟以下情景,有一个N品牌手机,在上边玩一个小游戏. ...

  2. Hadoop小文件存储方案

    原文地址:https://www.cnblogs.com/ballwql/p/8944025.html HDFS总体架构 在介绍文件存储方案之前,我觉得有必要先介绍下关于HDFS存储架构方面的一些知识 ...

  3. C#中IEnumerable、ICollection、IList、List之间的区别

    IEnumerable.ICollection.IList.List之间的区别,本文分别分析了它的实现源码,从而总结出了它们之间的关系和不同之处. 首先我看看 IEnumerable: // 摘要: ...

  4. Asp.Net MVC上传图片

    mvc上传图片 [HttpPost] public JsonResult Upload() { ) { ) { HttpPostedFileBase file = Request.Files[]; ) ...

  5. Canvas入门到高级详解(中)

    三. canvas 进阶 3.1 Canvas 颜色样式和阴影 3.1.1 设置填充和描边的颜色(掌握) fillStyle : 设置或返回用于填充绘画的颜色 strokeStyle: 设置或返回用于 ...

  6. 使用DNSPod解析Freenom域名

    注册Freenom域名 Freenom官网:http://www.freenom.com Freenom提供的顶级域名包括:tk,ml,ga,cf,gq 申请流程: 注册用户后登陆,然后查询并选择一个 ...

  7. 【iCore4 双核心板_uC/OS-II】例程十:信号量集

    一.实验说明: 在实际应用中,任务常常需要与多个事件同步,即要根据多个信号量组合作用的结果来决定任务的运行方式.UCOSII为了实现多个信号量组合的功能定义了一种特殊的数据结构——信号量集. 二.实验 ...

  8. JVM:Java常见内存溢出异常分析

    转载自:http://www.importnew.com/14604.html Java虚拟机规范规定JVM的内存分为了好几块,比如堆,栈,程序计数器,方法区等,而Hotspot jvm的实现中,将堆 ...

  9. RSA加密算法详解(一)

    如果你问我,哪一种算法最重要? 我可能会回答"公钥加密算法". 因为它是计算机通信安全的基石,保证了加密数据不会被破解.你可以想象一下,信用卡交易被破解的后果. 进入正题之前,我先 ...

  10. go语言调用append之后是否重新分配内存?

    查看tidb源代码:::util/charset/charset.go,下面有段代码: // GetAllCharsets gets all charset descriptions in the l ...