【python基础】函数-模块
函数的优点之一是,使用它们可将代码块与主程序分离。通过给函数指定函数名称,可让主程序容易理解的多。我们还可以更加细化,将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。import关键字作用就是将模块中的代码导入到当前主程序中。
通过将函数存储在独立的文件中,可隐藏程序代码细节,将重点放在程序的高层逻辑编写上。这还能在不同的程序中多次调用函数。将函数存储在独立文件中后,可与其他程序员共享这些文件而不是整个程序,所以知道如何导入函数还能使用其他程序员编写的函数库。
导入模块的方法有多种,我们接下来一一介绍
1.导入整个模块
1.1创建模块
要让函数是可导入的,得先创建模块。模块是扩展名为.py的文件,包含要导入到程序中的代码。下面我们来创建一个录入人员信息的模块,我们新建一个.py文件,并且将其命名为people.py。
- 新建文件。左键选中项目名称course,右击course出现一级菜单选择New,出现二级菜单选择Python File

2.编写文件名people,点击回车

3.我们发现在main.py文件下面出现了一个people.py。

4.我们在文件中编写代码如下所示:

1.2导入模块并调用模块函数
模块创建好之后,我们导入模块,并且调用模块函数,此时我们准备在主程序main.py文件中导入people模块,并调用insert_people函数,
导入模块的语法格式:
import 模块名
调用函数的语法格式:
模块名.函数
编写程序如下所示:

通过输出结果发现,是符合我们的设想的,这里import关键字把people模块中的代码导入到主程序main中,我们再通过模块.函数的方式,也就是people.insert_people的方式将人员信息录入,录入结束返回录入结果,将录入结果添加到list_people这个人员列表中,然后我们再将list_people输出。
1.3导入特定的函数
有时模块中函数较多,但是我们只想使用其中的某几个函数,为了程序的高效运行,我们可以不用把整个模块导入,而是只导入模块中我们需要的函数即可,这里就会用到from关键字,作用就是让Python要导入哪个模块的函数
导入特定函数其语法格式:
from 模块名 import 函数
调用特定函数其语法格式:
函数
我们再编写一个,修改人员名称的函数,在people模块中编写如下程序:

我们在main函数中调用update_people函数,在main主程序中编写程序如下所示

1.4as关键字
as关键字是给模块或者函数起别名的,这样做一方面是为了让模块名或者函数名避免过长,另一方面是为了避免与主程序中现有的名称冲突,使用as可以指定一个简短而独一无二的别名。
1.4.1给模块指定别名
我们将名字为'王五'的人员信息删除,people模块编写程序如下所示:

在主函数main中调用,编写程序如下所示:

1.4.2给特定的函数指定别名
查询所有人的信息,people模块编写程序如下所示:

主程序main编写程序如下所示:

people模块的list_people函数,正好和主程序中的list_people变量重名,通过起别名的方式,可以实现正常运行,如果不起别名会引起错误。
1.5导入模块中的所有函数
使用*号运算符可让Python导入模块中的所有函数
其语法格式:
from 模块名 import *
由于导入了所有函数,可直接通过名称来调用每个函数,而无须使用模块.函数的方法。然而,使用并非自己编写的大型模块时,最好不要采用这种导入方法,因为如果模块中有函数名称和编写的项目中使用的名称相同,可能导致意想不到的效果,Python可能遇到多个名称相同的函数或变量,进而覆盖函数,而不是分别导入所有的函数。
最好的做法是,要么只导入需要使用的函数,要么导入整个模块并使用模块.函数的语法格式调用函数。
【python基础】函数-模块的更多相关文章
- python基础,函数,面向对象,模块练习
---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? # [] {} () None 0 2,位和字节的关系? # ...
- python基础——使用模块
python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...
- 二十五. Python基础(25)--模块和包
二十五. Python基础(25)--模块和包 ● 知识框架 ● 模块的属性__name__ # my_module.py def fun1(): print("Hello& ...
- python 基础之 模块
Python 基础之模块 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 就是一个python文件中定义好了类和方法,实现了一些功能,可以被别的python文 ...
- python基础——第三方模块
python基础——第三方模块 在Python中,安装第三方模块,是通过包管理工具pip完成的. 如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了. 如果你正在使用Window ...
- python基础——函数的参数
python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...
- python基础—函数嵌套与闭包
python基础-函数嵌套与闭包 1.名称空间与作用域 1 名称空间分为: 1 内置名称空间 内置在解释器中的名称 2 全局名称空间 顶头写的名称 3 局部名称空间 2 找一个名称的查找顺序: ...
- python基础—函数装饰器
python基础-函数装饰器 1.什么是装饰器 装饰器本质上是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能. 装饰器的返回值是也是一个函数对象. 装饰器经常用于有切 ...
- Python基础-函数参数
Python基础-函数参数 写在前面 如非特别说明,下文均基于Python3 摘要 本文详细介绍了函数的各种形参类型,包括位置参数,默认参数值,关键字参数,任意参数列表,强制关键字参数:也介绍了调用函 ...
- 【Python之路】第六篇--Python基础之模块
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
随机推荐
- [ACM]快速排序模板
思路 快排基本思路应该就是二分+递归,从两侧同时(实则先从右往左)往中间找,同时和参变量对比,发现位置颠倒后交换位置,然后通过二分将其一块一块的分割开,直到分割到一个元素位置,即完成了快排. 代码 # ...
- 长达 1.7 万字的 explain 关键字指南!
当你的数据里只有几千几万,那么 SQL 优化并不会发挥太大价值,但当你的数据里去到了几百上千万,SQL 优化的价值就体现出来了!因此稍微有些经验的同学都知道,怎么让 MySQL 查询语句又快又好是一件 ...
- 生产事故-记一次特殊的OOM排查
入职多年,面对生产环境,尽管都是小心翼翼,慎之又慎,还是难免捅出篓子.轻则满头大汗,面红耳赤.重则系统停摆,损失资金.每一个生产事故的背后,都是宝贵的经验和教训,都是项目成员的血泪史.为了更好地防范和 ...
- [Python]【Form Data vs Request Payload】之 python 爬虫如何实现 POST request payload 形式的请求
1 问题描述 欲使用Python的requests库(requests.session().request(...))实现对此Ajax的POST请求进行模拟实现. 但在chrome发现其请求的形式不一 ...
- etcd/raft选举源码解读
ETCD-raft笔记 0. 引言 该篇博客基于etcd v3.5.7版本,首先会简单介绍etcd/raft对Raft选举部分的算法优化,然后通过源码分析etcd/raft的选举实现. 1. etcd ...
- 欢迎使用园子的 vscode 插件
为了方便大家通过 vscode 编辑博文,我们做了一个小插件,插件名称是"博客园Cnblogs客户端",插件列表中搜索"博客园"或者 "cnblogs ...
- c#快速入门~在java基础上,知道C#和JAVA 的不同即可
观看下文前提:如果你的主语言是java,现在想再学一门新语言C#,下文是在java基础上,对比和java的不同,快速上手C# C# 学习参考文档和开发工具 微软c#官方文档:https://learn ...
- SRAM 测试总结
SoC随着工艺进步设计复杂度增加,embeded sram也越来越多.在40nm SoC产品Sram一般在20Mbits左右,当工艺发展到28nm时Sram就增加到100Mbits.如果考虑AI产品, ...
- RabbitMQ详解(下)
一:序 通过<RabbitMQ详解(上)>一文中,我们可以知道RabbitMQ的一些基本的原生用法,如交换机的创建及消息的投递,但是在企业中我们大部分都是把RabbitMQ集成到Sprin ...
- 迁移学习(MEnsA)《MEnsA: Mix-up Ensemble Average for Unsupervised Multi Target Domain Adaptation on 3D Point Clouds》
论文信息 论文标题:MEnsA: Mix-up Ensemble Average for Unsupervised Multi Target Domain Adaptation on 3D Point ...