【Python】函数——模块与函数的导入

news2024/11/24 19:41:24

概述

为了方便使用函数,我们可以将函数存储在称为模块独立文件中,再将模块导入到主程序中,导入一个模块需要使用import语句。

导入整个模块

模块是扩展名为.py的文件

1、导入某个模块

语法为:

import module_name

2、导入特定模块后,调用模块中某个函数

语法为:

moudle_name.function_name()

3、示例 

一个目录下有这样两个文件:

 pizza.py中的代码为:

def make_pizza(size,*toppings):
    """概述要制作的披萨"""
    print(f"\nMaking a {size}-inch pizza with the following toppings:")
    for topping in toppings:
        print(f"-{topping}")

 making_pizzas.py中的代码为:

import pizza

pizza.make_pizza(16,'pepperoni')
pizza.make_pizza(12,'mushrooms','green peppers','extra cheese')

 运行 making_pizzas.py,返回结果为:

表示成功执行了模块 pizza.py中的make_pizza函数。

Python在读取这个文件时,代码行import pizza让Python打开了文件pizza.py,并将其中的所有函数复制到这个程序中。

我们看不到复制的代码,因为在这个程序即将运行时,Python在幕后复制了这些代码。我们需要知道的是,我们可以使用导入模块中的所有函数

导入特定的函数

1、导入模块中某一个函数

语法为:

from moudle_name import function_name

2、从模块中导入任意数量的函数 

将函数用逗号隔开即可,语法为:

from module_name import function_0,function_1,function_2

3、和导入整个模块对比 

导入特定函数,调用某个函数的目的性更强,更有利于了解主程序;且不需要使用模块名调用函数的写法(module.function(),点表示调用);需要使用函数时,直接写函数名就可以调用,简单方便。

使用as给函数指定别名

1、导入模块中的函数,并给这个函数起别名

语法为:

from module_name import function_name as fn
  • module_name表示模块名
  • function_name表示函数名 
  • fn表示我们想给函数起的别名

2、为什么给函数起别名

  • 函数名称太长
  • 导入的函数名和程序中现有名称一致

使用as给模块指定别名

语法为:

import module_name as m

例如:给模块pizza指定别名为p

import pizza as p 

当然,如果我们给模块起了别名,再调用模块函数的时候,就得用别名来调用函数

例如:

原来调用pizzapy模块的make_pizza()函数:

pizza.make_pizza()

现在:

p.make_pizza()

 

导入模块中的所有函数

使用星号(*)运算符可以让Python导入模块中的所有函数

语法为:

from module_name import *

但是,一般不建议使用这种导入方法, 因为模块较大时,一是导入数据过多很占内存、影响性能,二是大型模块里面有很多函数,如果遇到与现有程序中同样名称的情况,Python无法识别优先使用哪一个,容易出现BUG。

函数编写指南

1、给函数指定描述性名称

且描述性名称只使用小写字母下划线,描述性名称要我们和阅读者明白我们想要做什么;给模块命名时也是如此。

2、给函数添加注释

应采用文档字符串格式,在函数名下为函数添加注释;注释起码要包含函数的名称需要的实参返回值的类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/154481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[oeasy]python0043_八进制_oct_octal_october_octave

八进制(oct) 回忆上次内容 什么是 转义? 转义转义 转化含义\ 是 转义字符\n、\r是 转义序列 还有什么 转义序列 吗? \a是 响铃\b 退格键\t 水平制表符 tab键\v、\f 实现喂纸不回车 通过 16进制数值 转义 \xhh输出 (hh)16进制对应的ascii字符 如果我们不…

Portainer使用docker compose搭建nacos并初始化MySQL、Portainer stack搭建nacos并初始化MySQL

Portainer使用docker compose搭建nacos初始化MySQL、Portainer stack搭建nacos初始化MySQL新建stack(堆栈)添加stack(堆栈)名称添加docker-compose规则配置环境变量上传初始化sql文件找初始化sql文件nacos初始化mysql-schema.sql文件内容上传sql文件到初始化挂载目录部署stack(…

打印机不打印故障简单排除方法

日常工作中经常会遇到打印机不能打印的情况,那么又没有专业的技术人员在场帮忙的情况下我们也可以自己动手简单的处理一下故障,可以尝试以下的方法进行简单的故障排除; 一、使打印机处于联机状态,如果打印机没有处于联机状态&…

医疗影像工具LEADTOOLS 入门教程: 检测和提取 MICR - 控制台 C#

LEADTOOLS是一个综合工具包的集合,用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别和处理&#x…

基于STM32或STC的手势控制MP3语音播放器的设计

一. 系统设计框图 区别于传统设计中的按键开关控制,本设计可以实现通过手势控制MP3播放器。采用STM32或STC15单片机和PAJ7620手势模块,能够识别九种手势,分别为上下左右前后,顺时针,逆时针,挥动。在本设计…

SpringBoot视图解析与模板引擎

目录 1、视图解析 1、视图解析原理流程 2、模板引擎-Thymeleaf 1、thymeleaf简介 2、基本语法 3、设置属性值-th:attr 4、迭代 5、条件运算 6、属性优先级 3、thymeleaf使用 1、引入Starter 2、自动配置好了thymeleaf 3、页面开发 4、构建后台管理系统 1、项目…

Java基础03——数组

Java基础03——数组一、数组介绍二、数组的定义与静态初始化1. 定义数组2. 数组静态初始化三、数组元素访问1. 数组的地址值2. 数组访问四、数组遍历五、数组动态初始化六、数组常见问题1. 索引越界异常七、数组常见操作1. 求最值2. 求和3. 交换数据4. 打乱数据八、数组内存图九…

java企业人事管理系统企业工资考勤系统

简介 Java基于ssm开发的企业人事考勤工资系统,员工可以打卡、请假。系统根据员工的打卡情况自动计算工资(全勤、请假、旷工、加班、迟到、早退等计算出最终实发工资),员工还可以查看自己的考勤记录工资具体组成等。升级版加了部长…

Linux——信号知识归纳(中)

目录 一.信号与硬件异常 二.阻塞信号和信号结构 (一).信号状态 (二).信号结构 ①pending表 ②block表 ③handler表 (三).信号处理过程 (四).阻塞与忽略的区别 &#xff08…

Linux 中断子系统(二):GIC 中断控制器

GIC 是 ARM 公司给 Cortex-A/R 内核提供的一个中断控制器,类似 Cortex-M 内核(STM32)中的 NVIC。 GIC:Generic Interrupt Controller,通用中断控制器 NVIC:Nested Vectored. Interrupt Controller,嵌套向量中断控制器目前 GIC 有 4 个版本:V1 ~ V4,V1 是最老的版本,已…

react源码解析20.总结第一章的面试题解答

总结 至此我们介绍了react的理念,如果解决cpu和io的瓶颈,关键是实现异步可中断的更新 我们介绍了react源码架构(uifn(state)),从scheduler开始调度(根据过期事件判断优先级),经过r…

测试开发 | Jenkins job 机制该如何使用?

Jenkins 像老板一样管理各种 job 。job 是 Jenkins 的一个执行计划,是一系列操作的集合,Jenkins 里的最常用的功能就是 job 的构建,即任务的构建。通过构建 job 即可让工人为你工作。 image806387 84.3 KB 创建 job及配置步聚 可以通过如下步…

C#,图像二值化(20)——全局阈值的耶恩算法(Yen Thresholding)及源代码

1 全局阈值的耶恩算法(Yen Throsholding)常见阈值算法1.1黄算法HuangThresholdImageFilter使用Shannon的熵函数实现Huang的模糊阈值[1]。模糊性度量表示原始图像与其二进制版本之间的差异。对于给定的阈值级别,像素的模糊隶属度函数由像素灰度…

Java中常用API总结(7)—— BigDecimal类

BigDecimal类一、前言二、概述1.API帮助文档2.使用方法三、常见方法1.格式2.实例3.报错4.解决方法四、结语一、前言 在使用float或者double类型的数据在进行数学运算的时候,很有可能会产生 精度丢失问题 我们都知道计算机底层在进行运算的时候,使用的都…

Echarts image 使用

通过image://...xx.png 在扇形图中可能会失败,可以将需要载入的img转换成base64直接载入可以通过背景色来载入图片 backgroundColor: {image: xxx/xxx.jpg },实例(扇形图):var option {tooltip: {trigger: "item",show…

如何用用C++实现通达信接口调用?有哪些技巧

c作为三大计算机语言之一,在编程时很受投资者的偏爱,特别是在通达信接口软件开发时C更是担任着重要的开发角色,今天小编就来和大家说一下如何用C实现通达信接口调用? 用C查询股份数据代码(部分) std::cou…

C4D和Maya哪个学起来更容易

Maxon Cinema 4D和 Autodesk Maya 是最著名的两种 3D 软件,艺术家和工作室经常在许多领域使用它们。它们都有不同的功能,在本文中,让我们对它们进行比较。我们将尝试向您概述它们之间的主要区别,以及这两者的功能。哪一个更容易使…

2: [SpringData集成Elasticsearch] --- 配置打印命令日志

文章目录一:引入SpringDataElasticsearch依赖二:创建RestHighLevelClient配置类三:配置YML: logging.level --- 日志等级三:请求接口,查看日志3.1:请求代码3.2:Postman请求地址3.3&a…

LayoutInflater学习(一)之布局解析

LayoutInflater的创建与实例化 LayoutInflater是位于 "android.view" 包下的一个抽象类,同样它也是一个系统级服务 package android.view; SystemService(Context.LAYOUT_INFLATER_SERVICE) public abstract class LayoutInflater { LayoutInflater是用来解析 xml…

桌面录屏软件,分享3个十分便捷的录屏软件

​图片和视频都是人们传播信息的方式,不过相比于图片,视频能够更加直观生动的表达信息。在日常生活中,除了屏幕上记录一些应用程序的内容外,有时我们还需要记录电脑桌面。有更好的桌面录屏软件吗?当然,小编…