Python 模块

今天小婷儿给大家分享的是Python 模块。

Python 模块

Python 3 模块

概念:模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。

模块可以被别的程序引入,以使用该模块中的函数等功能,这也是使用 python 标准库的方法。

一 、模块分类

1、内置模块:python提供的标准模块,如random 、time 、os等等;

2、第三方模块:别人写好的模块,我们可以拿过来用;

1):一般来说,第三方库都会在Python官方的pypi.python.org网站注册

2):但是使用第三方模块,需要先安装,需要使用pip命令(第三方包管理工具)

3、自定义模块:我们自己写的模块

1)创建模块:其实就是新建一个py后缀的源文件,如果在另外的py文件中使用,导入方式一样;

a:创建自己的模块时,要注意:模块名要遵循Python变量命名规范,不使用中文、特殊字符;

b:模块名不要和系统模块名冲突

2)模块的作用域:表示模块中的内容能否被其他模块直接访问,

一般称为public(公有的,公开的)和private(私有的,非公开的);[类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接调用。之所以说不应该,是因为Python并没有一种方法可以完全限制访问非公开的函数或变量(其他模块可以直接访问这些'_'开头的变量和函数),但是,从编程习惯上不应该调用非公开的内容函数。]

3)__name__

当直接运行该模块(当做主程序调用)时,__name__的值是__main__,当该模块被其他程序import的时候,模块的__name__就是该模块名,所以每个我们经常会在模块下面写这样一个if判断,里面来写测试代码:

if __name__ == '__main__':

....

4) __all__

如果通过 from 模块名 import * 导入的时候,只能导入该模块最上面通过__all__规定的列表里面的函数、变量或者类;

5)__pycache__文件夹

当第一次导入某个模块的时候,系统会自动生成这样一个文件夹,里面存放的是模块的缓存字节码文件,下次再使用的时候,如果该模块没有改变,那么直接使用这个缓存文件

6)包

a:包:如果多个模块功能类似,可以将这些模块放到同一个目录下面,方便管理,这个目录就称之为包

b:包里面一般情况都有个文件:__init__.py,这个文件可以是空的,只是告诉编译器这个目录不是普通目录,

是python里面的一个包

二、导入方式

1)import 模块名,...

如果这样导入模块,调用模块中提供的函数等内容的时候,需要加上模块名

如 time.sleep()

例:如果我们在 modulee.py 的文件下,写入下面的 def 语句:

def pyxxt(x):

print(x)

而我们想在其它 py 文件中用到相同作用的 pyxxt() 函数,我们可以:

例:

import modulee

module.pyxxt('life is short,we need python!')

结果:life is short,we need python!

2)from 模块名import 名称1,...

如from time import sleep,表示从time模块中导入进来sleep函数,

那么在使用sleep函数的时候,直接调用

例:

from modulee import pyxxt

pyxxt('life is short,we need python!')

结果:life is short,we need python!

3)起别名

给模块起别名,如import random as ran,以后再代码中只能使用别名ran,

不能使用原名random

4)模糊导入

如from random import *,将random中所有函数全部导入进来,不推荐这样使用

例:

from modulee import *

pyxxt('life is short,we need python!')

结果:life is short,we need python!

本文分享自微信公众号 - DB宝(xiaomaimiaolhr),作者:小婷儿

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【DB笔试面试506】基于主机数据复制技术的灾备方案有哪些?

    采用基于主机系统的数据复制技术的核心是利用主、备中心主机系统通过IP网络建立数据传输通道,通过主机数据管理软件实现数据的远程复制,当主数据中心的数据遭到破坏时,...

    小麦苗DBA宝典
  • 【DB笔试面试746】在O中,“...SWITCH LOGFILE”与“... ARCHIVE LOG CURRENT”区别

    在Oracle中,RAC环境下“ALTER SYSTEM SWITCH LOGFILE;”与“ALTER SYSTEM ARCHIVE LOG CURRENT;...

    小麦苗DBA宝典
  • 【DB笔试面试840】在Oracle中,如何在RAC服务器端配置TAF?

    RAC的本质是提供负载均衡(Load Balancing)和故障切换(Failover),如下图所示:

    小麦苗DBA宝典
  • python 对象 特殊字段

    https://www.cnblogs.com/zh1164/p/6031464.html

    小贝壳
  • 【npm】详解npm的模块安装机制

    依赖树表面的逻辑结构与依赖树真实的物理结构 依赖树表面的逻辑结构与依赖树真实的物理结构并不一定相同! 这里要先提到两个命令:tree -d(linux)和npm...

    外婆的彭湖湾
  • 深入浅出 Nodejs( 二 ):Nodejs 文件模块机制

    本篇教程关于Nodejs的文件模块机制,具体讲CommonJs规范以及Nodejs文件模块的实现原理。

    serena
  • 《深入浅出Node.js》:node的模块规范与模块实现

    Node的目标是成为一个构建快速、可伸缩的网络应用平台,通过通信协议来组织许多Node,非常容易通过扩展来达成构建大型网络应用的目的。

    前端_AWhile
  • 有赞移动 iOS 组件化(模块化)架构设计实践

    业务组件化(或者叫模块化)作为移动端应用架构的主流方式之一,近年来一直是业界积极探索和实践的方向。有赞移动团队自 16 年起也在不断尝试各种组件化方案,在有赞微...

    有赞coder
  • Spring@Enable模块装配

    首先要说一下版本相关,Spring Framework3.1开始引入了@Enable注解。

    用户4143945
  • python常用命令—查看模块所在位置

    py3study

扫码关注云+社区

领取腾讯云代金券