Python 模块与自定义模块

简介: Python 模块与自定义模块

一、导入 Python 标准库

想问你一下,有一件相对复杂的事儿,你看了下发现要实现它,得至少 20 个步骤,然后还得自己写至少 1000 行代码。

但与此同时,在这个世界上,居然还有人曾经遇到跟你一模一样的问题,他也是通过 20 个步骤,写了 1000+ 行代码,并最终实现了。更让人惊喜的是,他还将所有的代码打包成了一个产品,开源并免费供大家使用。

如果,此时此刻,你需要去实现这个功能的话,你是想自己从 0 开始一行一行去写呢,还是直接「引入」别人打包好的开源又免费的产品,然后实现效果呢?

那肯定是直接「引用」,对吧?

是的,你跟所有程序员同学一样,会优先去引用,而不是选择「重复造轮子」,退一万步讲,哪怕这个产品不能够完全满足我们的开发需求,我们也是可以在它原有基础上,进一步去「改造、优化」的。

好了,我们在用别人打包好的开源又免费的产品,也叫「第三方库」,要做的是,在使用之前,需要将它们「导入」你的工程中,语法关键字用 import 表示。

语法格式:

import 模块名 [as 别名]

比如,在数学中的很多公式的代码实现,其实只需要实现一次,然后无限次复用就好,在你想用的时候,直接调用就好了。

像我们想计算三角函数中的正弦值时,就直接导入 math 模块,然后调用它的 sin() 函数就能实现。

案例代码:

import math
# 求 5 的正弦值
math.sin(5)

其实,在导包地时候,我们还可以再提升下效率,对程序员来说,每一个细微地地方都去优化一点点,那么我们的程序将会更健壮。

如果我们用的类库比较大,那我们可以针对性地从某个模块中,导入指定地对象,能够极大程度上去减少了对象的查询次数,进而提高了访问速度。

当然,最重要的是,我们写的代码也会少一些,所有程序员梦寐以求的事儿,代码少点儿,加班少点儿,钱多点儿,头发多点儿……

语法格式:

from 模块名 import 对象名[as 别名]

案例代码:

from math import sin
# 求 5 的正弦值
sin(5)
sin(50)
sin(500)

二、Python 自定义模块

一个 Python 源文件,除了可以被直接解释执行,还可以作为模块,被别的 Python 文件导入引用执行。

案例代码:

1、One.py

name = 'XiaoMing'
def myInfo() :
    print('name: ', name)
myInfo()

2、Two.py

from One import name
def sayHello(age) :
    return '我的名字是:' + name + '年龄是:' + age
sayHello('18')

当我们执行 Two 文件的时候,发现 One 中的 myInfo() 方法也被执行了。

但不是我们想要的,在作为模块被导入时,可能会有一部分代码,我们并不希望它被第三方执行。

该怎么办呢?我们可以声明一个 name 内置变量就好,这东西会看自己是在哪儿,然后再决定自己以什么身份出现,有两种情况。

当我们声明了这个内置变量后,如果本模块直接执行,那么这个 name 的值就为 main

如果说,它被别人引用了,那么它的值就是模块名,也就是它所在文件的文件名。

name = 'XiaoMing'
def myInfo() :
    print('name: ', name)
if __name__ == '__main__':
    myInfo()

你再去执行的时候,发现问题已经解决好了。

最后

我是帅帅,一个默默做了 7 年的 Java 技术、Python 技术、架构师成长教练。

很喜欢罗曼·罗兰的一句话:“人最可贵之处在于看透生活的本质后,依然热爱生活 ”。

愿我们一起,努力追寻本质,依然保持热爱。


目录
相关文章
|
7天前
|
Python
手撕Python!模块、包、库,傻傻分不清?一分钟带你弄明白!
手撕Python!模块、包、库,傻傻分不清?一分钟带你弄明白!
20 1
|
5天前
|
前端开发 Python
使用Python+openpyxl实现导出自定义样式的Excel文件
本文介绍了如何使用Python的openpyxl库导出具有自定义样式的Excel文件,包括设置字体、对齐方式、行列宽高、边框和填充等样式,并提供了完整的示例代码和运行效果截图。
8 1
使用Python+openpyxl实现导出自定义样式的Excel文件
|
8天前
|
存储 Python
Python时间模块四大必备知识点
Python时间模块四大必备知识点
18 4
Python时间模块四大必备知识点
|
4天前
|
JSON API 数据格式
Python网络编程:HTTP请求(requests模块)
在现代编程中,HTTP请求几乎无处不在。无论是数据抓取、API调用还是与远程服务器进行交互,HTTP请求都是不可或缺的一部分。在Python中,requests模块被广泛认为是发送HTTP请求的最简便和强大的工具之一。本文将详细介绍requests模块的功能,并通过一个综合示例展示其应用。
|
4天前
|
XML 存储 数据格式
使用Python的zipfile模块巧解Word批量生成问题
通过以上步骤,我们得到了填充了特定数据的 Word 文档。这个过程可以通过循环对多个数据集重复执行,从而实现批量生成多个 Word 文档的目标。
11 5
|
2天前
|
Python
Python模块的创建方法?
【8月更文挑战第18天】Python模块的创建方法?
4 2
|
2天前
|
Shell Python 容器
Python模块
【8月更文挑战第18天】Python模块
5 2
|
2天前
|
Shell Python 容器
Python模块是其代码组织和重用的基本方式。
【8月更文挑战第18天】Python模块是其代码组织和重用的基本方式。
7 1
|
8天前
|
PyTorch TensorFlow 算法框架/工具
手撕Python! 模块、包和库一分钟搞定!
手撕Python! 模块、包和库一分钟搞定!
15 1
|
12天前
|
存储 安全 Python
[python]使用标准库logging实现多进程安全的日志模块
[python]使用标准库logging实现多进程安全的日志模块