Python学习笔记——自定义函数(将函数存储在模块中及总结)

编写函数不仅可以做到代码复用,使用函数的一个特别好的优点是可将代码块与主程序分离。另外,不仅可以通过给函数指定描述性的名称,能让程序容易理解,还可以把函数存储在成为模块的独立文件中,再将模块导入(import)主程序,import语句可让你在当前运行的程序文件中使用模块中的代码(函数等)

通过将函数存储在独立的文件中,可隐藏程序代码的细节,将重点放在程序的高层逻辑上。还能让在众多不同的程序中调用进行复用,也实现与其他程序员共享这些文件而不是整个程序。

(1)导入整个模块

要让函数是可导入的,得先创建模块。模块是扩展名为.py的文件,包含要导入程序的代码。

使用import语句可以导入整个模块,语法是:

# 同一文件夹下的module_name.py文件
# 不包含模块文件名后缀.py
import module_name 

上面的import语句代码行,会让Python打开模块文件,并将其中的所有函数都复制到这个程序中。你看不到复制代码的过程,因为Python会在程序即将运行时在幕后复制这些代码。

如果使用上面语句导入整个模块,调用其中的语法如下:

module_name.function_name()

(2)导入特定的函数

Python允许只导入模块中的特定函数,语法如下:

from mudule_name import function_name

用逗号分割函数名,可根据需要从模块中导入任意数量的函数:

from mudule_name import function_1,function_2,function_3,function_4

使用上面方式,通过from 模块名 import functiong 语法,可以直接使用函数,而无须使用点号来引用。

from module_name import *

使用上面语句,可以把一个模块中所有函数导入,在程序文件中直接使用。

总结:

程序员的目标之一是编写简单的代码来完成任务,而函数有助于实现这样的目标。函数可以让你在编写一次代码后,可以复用它们任意次数。当需要运行函数中的代码时,只需要编写一行函数调用代码(根据需要传入参数),就可以让函数完成其工作。而且当需要修改该函数的行为(逻辑)时,只需要修改函数中的代码即可,修改一处,即可影响所有调用的地方。

使用函数让程序更容易阅读,而良好的函数名概述了程序各个部分的作用。相比于阅读一系列的代码快,阅读一系列的函数调用让你能够更快地明白程序的作用。

函数还让代码更容易测试和调试。如果程序使用一些列的函数来完成任务,其中的每个函数都完成一项具体的工作,那么程序测试和维护都将容易得多。

关于类,是将函数和数据整洁地封装起来,做到更灵活和高效地使用它们,函数是最基础的。

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

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

相关文章

数仓面试题整理(1)

什么是数据仓库? 答:数据仓库是一个集中式数据存储系统,用于集合、存储和分析来自不同源的大量数据。它支持决策制定过程,通过提供历史数据的统一视图,帮助组织进行复杂的查询和分析。 数据湖与数据仓库有什么区别&am…

2024 高级前端面试题之 计算机通识(基础) 「精选篇」

该内容主要整理关于 计算机通识(基础) 的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 计算机基础精选篇 一、网络1.1 UDP1.2 TCP1.3 HTTP1.4 DNS 二、数据结构2.1 栈2.2 队列2.3 链表2.4 树2.5 堆 三、算法3.1 时…

使用 Nuxt 构建简单后端接口及数据库数据请求

写在前面 本文主要为大家介绍,如何使用 Nuxt 框架实现一个简单的后端接口,并且从数据库中请求数据返回给前端。 实现 创建 serverMiddleware 文件夹 首先我们新建一个名字为 serverMiddleware 文件夹用来存储接口相关信息 目录结构如下:…

汽车电子论文学习--电动汽车电机驱动系统动力学特性分析

关键重点: 1. 汽车的低速转矩存在最大限制,受附着力限制,因路面不同而变化。 2. 起步加速至规定转速的时间可以计算得到: 3. 电机额定功率的计算方式: 可以采取最高设计车速90%或120km/h匀速行驶的功率作为电机额定功…

如何区分期权,很简单WeTrade众汇教你两招

二元期权有许多变体,很多投资者难以区分外汇和二元期权,很简单WeTrade众汇教你两招1秒快速区分,我们可以根据这两个最重要的参数进行区分: 1)合同类型的范围 只有一种外汇合约。当然,你可以交易货币对、差价合约、商品或证券&am…

脉冲电流源测试旁路二极管热性能方案

热斑效应:太阳能电池一般是由多块电池组件串联或并联起来。串联支路中可能由于电池片内部缺陷或者外部遮挡,将被当作负载消耗其他有光照的太阳电池组件所产生的能量。被遮蔽的太阳电池组件此时会严重发热而受损。 旁路二极管:是指并联于太阳能…

Nginx 403 forbidden

1、没有权限问题 Linux系统中如果Nginx没有web目录的操作权限,也会出现403错误。解决办法:修改web目录的读写权限,或者是把Nginx的启动用户改成目录的所属用户,重启Nginx即可解决。(windows 下则用管理员启动nginx即可)。 chmod -…

Android全新UI框架之Jetpack Compose入门基础

Jetpack Compose是什么 如果有跨端开发经验的同学,理解和学习compose可能没有那么大的压力。简单地说,compose可以让Android的原生开发也可以使用类似rn的jsx的语法来开发UI界面。以往,我们开发Android原生页面的时候,通常是在xml…

第2.4章 StarRocks表设计——分区分桶与副本数

目录 一、数据分布 1.1 概述 1.2 数据分布方式 1.2.1 Round-Robin 1.2.2 Range 1.2.3 List 1.2.4 Hash 1.3 StarRocks的数据分布方式 1.3.1 不分区 Hash分桶 1.3.2 Range分区Hash分桶 三、分区 3.1 分区概述 3.2 创建分区 3.2.1 手动创建分区 3.2.2 批量创建分区…

OJ_不连续1的子串

题干 C实现 #include<iostream> using namespace std;int f0(int n); int f1(int n);int main() {int n;cin >> n;cout << f0(n) f1(n);return 0; }int f0(int n) {//末尾为0的串if (n 1) {return 1;}else {return f0(n - 1) f1(n - 1);} } int f1(int n…

linux系统离线安装docker服务教程

1、下载、上传docker-20.10.0.tgz压缩包至服务器&#xff0c;其中&#xff0c;docker下载地址https://download.docker.com/linux/static/stable/x86_64/ 2、新建安装docker脚本docker-install.sh #!/usr/bin/env bash tar -xvf docker-20.10.0.tgzcp docker/* /usr/bin/cat …

多维时序 | Matlab实现TCN-RVM时间卷积神经网络结合相关向量机多变量时间序列预测

多维时序 | Matlab实现TCN-RVM时间卷积神经网络结合相关向量机多变量时间序列预测 目录 多维时序 | Matlab实现TCN-RVM时间卷积神经网络结合相关向量机多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现TCN-RVM时间卷积神经网络结合相关向量机…

【STM32】如何将版本信息编进代码?

文章目录 参考const uint8_t cu8RteBspVerName[]__attribute__((section(".ARM.__at_0x8011DA6"))) = "SY_ECU_STM32H563_V1.0.0.0";

Linux--shell编程中有关数组的详细内容

文章中数组相关内容目录 一、定义数组 二、读取数组 ​​​​​​​​​​​​​​三、获取数组中的所有元素 ​​​​​​​​​​​​​​四、获取数组的长度 五、遍历数组​​​​​​​ 一、定义数组 数组中可以存放多个值。Bash Shell 只支持一维数组&#xff08;不…

C#,洗牌问题(Card Shuffle Problem)的算法与源代码

1 洗牌问题&#xff08;Card Shuffle Problem&#xff09; 洗牌问题&#xff08;Card Shuffle Problem&#xff09;的基本描述 你有 100 张牌&#xff0c;从 1 到 100。 你把它们分成 k 堆&#xff0c;然后按顺序收集回来。 例如&#xff0c;如果您将它们分成 4 堆&#xff0…

《Solidity 简易速速上手小册》第9章:DApp 开发与 Solidity 集成(2024 最新版)

文章目录 9.1 DApp 的架构和设计9.1.1 基础知识解析更深入的理解实际操作技巧 9.1.2 重点案例&#xff1a;去中心化社交媒体平台案例 Demo&#xff1a;创建去中心化社交媒体平台案例代码SocialMedia.sol - 智能合约前端界面 测试和验证拓展功能 9.1.3 拓展案例 1&#xff1a;去…

ASP.NET-实现图形验证码

ASP.NET 实现图形验证码能够增强网站安全性&#xff0c;防止机器人攻击。通过生成随机验证码并将其绘制成图像&#xff0c;用户在输入验证码时增加了人机交互的难度。本文介绍了如何使用 C# 和 ASP.NET 创建一个简单而有效的图形验证码系统&#xff0c;包括生成随机验证码、绘制…

《社交网络》计算机电影题材赏析及电影推荐

《社交网络》&#xff08;The Social Network&#xff09;是一部2010年上映的传记剧情片&#xff0c;由大卫芬奇执导&#xff0c;主要讲述了Facebook创始人马克扎克伯格的创业历程和与合作伙伴之间的法律纠纷。 剧情 开场&#xff1a; 马克扎克伯格&#xff08;由杰西艾森伯格…

docker部署llm模型的项目,需要安装什么驱动

Docker容器中部署大型语言模型&#xff08;LLM&#xff09;项目&#xff0c;尤其是需要利用GPU进行加速的情况下&#xff0c;确保主机系统正确安装了NVIDIA驱动和CUDA是第一步。接着&#xff0c;你需要使用NVIDIA提供的Docker工具&#xff0c;如NVIDIA Container Toolkit&#…

Atcoder ABC341 A - Print 341

Print 341&#xff08;输出 341&#xff09; 时间限制&#xff1a;2s 内存限制&#xff1a;1024MB 【原题地址】 所有图片源自Atcoder&#xff0c;题目译文源自脚本Atcoder Better! 点击此处跳转至原题 【问题描述】 【输入格式】 【输出格式】 【样例1】 【样例输入1】 …