Python基础学习笔记(五)

模块的概念:模块是python程序架构的一个核心概念

  • 每个以拓展名py结尾的python源代码文件都是一个模块
  • 模块名同样也是一个标识符,需要符合标识符的命名规则
  • 在模块中定义的全局变量函数都是提供给外界直接使用的工具
  • 模块就好比是工具包,要想使用这个工具包中的工具,就需要先导入这个模块

模块的API:

客户端使用模块提供的函数时,无须了解其实现细节。模块和客户端之间遵循的契约(API)

通过内置函数help(),可以查看Python模块的API。其语法格式为:

import 模块名
help(模块名)

模块的类型:

  • 内置模块,Python提供的内置功能
  • 第三方模块,下载/安装/使用
  • 自定义模块

模块的导入:

1.import导入

import 模块1
import 模块2
import 模块1,2 #不推荐使用,推荐分行导入

如果模块的名字太长,可以使用as指定模块的名称,以方便在代码中的使用

import 模块名1 as 模块别名(符合大驼峰命名法)

  

2.from...import导入

如果希望从某个模块中,导入部分工具,就可以使用from...import,,,方式

import模块名是一次性把模块中所有工具全部导入,并且通过模块名/别名访问

#从模块导入某个工具
from 模块名1 import 工具名

导入以后不通过模块,而通过工具名(全局变量,函数,类)

注意事项:

  • 如果两个模块,存在同名的函数,那么后导入模块的函数,会覆盖掉先导入的函数
  • 同名函数可以通过别名加以区分:from 模块名 import 工具名 as 工具别名
  • 可用from 模块名 import *导入模块中所有工具,但不推荐使用

模块的搜索顺序:

1.搜索当前目录指定模块名的文件,如果有就直接导入

2.如果没有,在搜索系统目录

代码原则:每一个文件都应该是可以被导入的

1.一个独立的python文件就是一个模块

2.在导入文件时,文件中所有没有任何缩进的代码都会被执行一遍

__name__属性:

__name__属性可以做到,测试模块的代码只在测试情况下被运行,而在被导入时不会被执行

__name__是Python的一个内置属性,记录着一个字符串

如果是被其他文件导入__name__就是模块名

如果是当前执行的程序__name__是__main__

#为了使写的python文件都可以当成模块且测试代码不被执行
#则测试代码应该如下:
if __name__ = "__main__":
#测试代码

包:

概念:

  • 是一个包含多个模块特殊目录
  • 目录下有一个特殊的文件__init__.py
  • 包名的命名方式和变量名一样,小写字母 + _

好处:import 包名 可以一次性导入所有的模块

包的创建:

__init__.py

要在外界使用中的模块,需要在__init__.py中指定外界提供的模块列表

例如:

#__init__文件里

from . import 需要被其他文件导入的模块1
from . import 需要被其他文件导入的模块2

  

模块知识持续更新......

Python入门基础学习(模块,包)的更多相关文章

  1. Python入门基础学习 二

    Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...

  2. Python入门基础学习 三

    Python入门基础学习 三 数据类型 Python区分整型和浮点型依靠的是小数点,有小数点就是浮点型. e记法:e就是10的意思,是一种科学的计数法,15000=1.5e4 布尔类型是一种特殊的整形 ...

  3. Python入门基础学习 一

    Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...

  4. Python入门基础学习(时间模块,随机模块)

    Python基础学习笔记(六) time模块: 时间的三种表示方法: 1.格式化字符串 2.时间戳 用来表示和1970年的时间间隔,单位为s 3.元组 struct_time 9个元素 time的st ...

  5. Python 入门基础13 --模块与包

    本节内容: 一.模块及使用 1.模块及使用 2.起别名.from导入 3.自执行与模块 二.包的使用 2.1 包中模块的使用:import 2.2 包的嵌套 2.3 包中模块的使用:from ...i ...

  6. Python入门基础学习(面向对象)

    Python基础学习笔记(四) 面向对象的三个基本特征: 封装:把客观事物抽象并封装成对象,即将属性,方法和事件等集合在一个整体内 继承:允许使用现有类的功能并在无须重新改写原来的类情况下,对这些功能 ...

  7. Python入门基础学习(函数)

    Python基础学习笔记(三) 函数的概念: 所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用 函数的使用包含两个步骤: 1.定义函数 --封装独立的功能 2.调用函数 --享受 ...

  8. Python 入门基础学习

     Python入门学习  我们使用python3.0版本 首选来入门  带你进入Hello World >>> print ("Hello World")Hell ...

  9. Python入门基础学习(文件与异常处理)

    Python基础学习笔记(七) 捕获异常的语法格式: 文件的基本操作: 打开文件 读.写文件 关闭文件 read方法 --读取文件: open函数的第一个参数是要打开的文件名(文件名区分大小写) 如果 ...

随机推荐

  1. Fortify---Detail--Sql注入

    Abstract:   在 PaperDao.java 的第 40 行,checkQuesUsed() 方法调用通过不可信来源的输入构建的 SQL 查询.通过这种调用,攻击者能够修改指令的含义或执行任 ...

  2. Prometheus学习系列(九)之Prometheus 联盟、迁移

    前言 本文来自Prometheus官网手册 和 Prometheus简介 FEDERATION 允许Prometheus服务器从另一台Prometheus服务器抓取选定的时间序列. 一,用例 联盟有不 ...

  3. 简单了解一下:var 、let、const

    var 重新赋值,重新定义,作用域 属于:function scope: let 声明的变量只在 let 命令所在的代码块内有效,Block scope. const 声明一个只读的常量,一旦声明,常 ...

  4. sleuth和zipkin微服务里的链路跟踪

    分布式链路跟踪介绍 对于一个微服务系统,大多数来自外部的请求都会经过数个服务的互相调用,得到返回的结果,一旦结果回复较慢或者返回了不可用,我们就需要确定是哪个微服务出了问题.于是就有了分布式系统调用跟 ...

  5. 深入理解JavaScript程序设计

    今天没事情回顾了一下我在去年4-6月份学习JavaScript程序设计的笔记.发现书到用时方恨少,感觉自己学的还不够深,准备抽时间啃一下<JavaScript高级程序设计>,同时深入了解一 ...

  6. 电池中的NTC功能是什么?【转】

    电池的NTC功能是什么 因为可充电电池在不断的循环充电和放电过程中可能会导致电池温度的过高,导致电池原始性能下降.为了保持电池性能,密切监测电池温度非常重要,NTC在充电电池组内部的合适应用中可以起到 ...

  7. Orcl分页查询的语法示例

    Orcle分页查询SQL sql =  SELECT T.* FROM (SELECT X.*, ROWNUM AS RN FROM (SELECT * FROM +表名) X WHERE ROWNU ...

  8. laravel实现多模块

    一.这里使用Caffienate Modules 网址:modules maintained by caffeinated 二.根据自己的版本选择包的版本 三.在项目composer.json文件中加 ...

  9. oracle 查询数据一直提示:“error code [17004]; 无效的列类型”111111

    oracle 查询数据一直提示:“error code [17004]; 无效的列类型”111111 问题场景:oracle,jpa,insert原因:插入的字段中有null.导致类型转换出问题,这个 ...

  10. 在Asp.Net Core中配置使用MarkDown富文本编辑器实现图片上传和截图上传(开源代码.net core3.0)

    我们的富文本编辑器不能没有图片上传尤其是截图上传,下面我来教大家怎么实现MarkDown富文本编辑器截图上传和图片上传. 1.配置编辑器到html页 <div id="test-edi ...