文章目录一. 匿名函数二. 将函数存储在模块中1. 导入整个模块2. 导入特定的函数3. 使用as给函数指定别名4. 使用as给模块指定别名5. 导入模块中的所有函数(不推荐)三. 函数编写指南一. 匿名函数匿名函数是一类无须定义标识符的函数它与普通函数一样可以在程序的任何位置使用但是在定义时被严格限定为单一表达式。Python中使用关键字lambda来定义匿名函数。语法格式如下:#用f存储这个函数以便被调用flambdax,y:xyprint(f(10,20))这个语句等价于如下正常函数的定义:def函数名(参数列表):return表达式与普通的函数相比lambda函数的体积更小、功能单一用于定义简单的、能在一行内表示的函数返回一个函数类型。与普通函数的区别:普通函数在定义时有名称而lambda函数没有。普通函数的函数体中可以包含多条语句而lambda函数只能是一个表达式。普通函数可以实现比较复杂的功能而lambda函数功能简单。普通函数能被其他程序调用而lambda函数不能被其他程序调用不能模块化经常用一个变量来保存它以便后期可以随时使用这个函数。lambda函数经常会用在多维列表的排序中。如对二维列表按第二列排序分别升序、降序排序示例代码如下:ls[[a,100],[b,10],[c,30],[d,90],[e,50]]ls.sort(keylambdax:x[1])# 取第二位的数print(ls)二. 将函数存储在模块中模块化设计是使用函数和对象设计程序的思考方法以功能块为基本单位一般有两个基本要求:高内聚。尽可能地合理划分功能块功能块内部耦合紧密。低耦合。模块间尽可能简单功能块之间耦合度低。耦合是指两个实体相互依赖于对方的一个量度在程序设计结构中是指各模块之间相互关联的程序。衡量模块独立性的定性标准是内聚(一个模块内各个元素彼此结合的紧密程度)和耦合(一个软件结构内不同模块之间互连程度的度量)。模块化编程可采用以下步骤进行:分析问题明确需要解决的任务。对任务进行逐步分解和细化分成若干个子任务每个子任务只完成部分完整功能并且可以通过函数实现。确定模块(函数)之间的调用关系。优化模块之间的调用关系。在主函数中进行调用实现。语法可以将函数存储在称为模块的独立文件中再将模块导入到主程序中。import语句允许在当前运行的程序文件中使用模块中的代码。作用通过将函数存储在独立的文件中可隐藏程序代码的细节将重点放在程序的高层逻辑上。这还能让你在众多不同的程序中重用函数。将函数存储在独立文件中后可与其他程序员共享这些文件而不是整个程序。使用其他程序员编写的函数库。1. 导入整个模块要让函数是可导入的得先创建模块。模块是扩展名为.py的文件包含要导入到程序中的代码。下面来创建一个包含函数make_pizza()的模块: pizza.pydefmake_pizza(size,*toppings):概述要制作的比萨。print(f\nMaking a{size}-inch pizza with the following toppings:)fortoppingintoppings:print(f-{topping})创建调用making_pizzas.py文件只需编写一条import语句并在其中指定模块名就可在程序中使用该模块中的所有函数。importpizzaif__name____main__:pizza.make_pizza(16,pepperoni)pizza.make_pizza(12,mushrooms,green peppers,extra cheese)# Making a 16-inch pizza with the following toppings:# - pepperoni## Making a 12-inch pizza with the following toppings:# - mushrooms# - green peppers# - extra cheese如果使用这种import语句导入了名为module_name.py的整个模块就可使用下面的语法来使用其中任何一个函数module_name.function_name()2. 导入特定的函数还可以导入模块中的特定函数这种导入方法的语法如下frommodule_nameimportfunction_name通过用逗号分隔函数名可根据需要从模块中导入任意数量的函数frommodule_nameimportfunction_0,function_1,function_2对于前面的making_pizzas.py示例如果只想导入要使用的函数代码将类似于下面这样frompizzaimportmake_pizza make_pizza(16,pepperoni)make_pizza(12,mushrooms,green peppers,extra cheese)3. 使用as给函数指定别名如果要导入函数的名称可能与程序中现有的名称冲突或者函数的名称太长可指定简短而独一无二的别名函数别名。下面给函数make_pizza()指定了别名mp()。这是在import语句中使用make_pizza as mp实现的关键字as将函数重命名为指定的别名frompizzaimportmake_pizzaasmp mp(16,pepperoni)mp(12,mushrooms,green peppers,extra cheese)指定别名通用语法frommodule_nameimportfunction_nameasfn4. 使用as给模块指定别名importpizzaasp p.make_pizza(16,pepperoni)p.make_pizza(12,mushrooms,green peppers,extra cheese)给模块指定别名的通用语法如下importmodule_nameasmn5. 导入模块中的所有函数(不推荐)使用星号*运算符可让Python导入模块中的所有函数frompizzaimport*make_pizza(16,pepperoni)make_pizza(12,mushrooms,green peppers,extra cheese)由于导入了每个函数可通过名称来调用每个函数而无须使用句点表示法。但注意使用并非自己编写的大型模块时最好不要采用这种导入方法。这是因为如果模块中有函数的名称与当前项目中使用的名称相同可能导致意想不到的结果Python可能遇到多个名称相同的函数或变量进而覆盖函数而不是分别导入所有的函数。最佳的做法是要么只导入需要使用的函数要么导入整个模块并使用句点表示法。三. 函数编写指南编写函数时需要牢记几个细节。应给函数指定描述性名称且只在其中使用小写字母和下划线。给模块命名时也应遵循上述约定。每个函数都应包含简要地阐述其功能的注释。该注释应紧跟在函数定义后面并采用文档字符串格式。文档良好的函数让其他程序员只需阅读文档字符串中的描述就能够使用它。给形参指定默认值时等号两边不要有空格deffunction_name(parameter_0,parameter_1default value)调用函数中的关键字实参也应遵循这种约定:function_name(value_0,parameter_1value)如果程序或模块包含多个函数可使用两个空行将相邻的函数分开这样将更容易知道前一个函数在什么地方结束下一个函数从什么地方开始。所有import语句都应放在文件开头。唯一例外的情形是在文件开头使用了注释来描述整个程序。PEP 8建议代码行的长度不要超过79字符这样只要编辑器窗口适中就能看到整行代码。如果形参很多导致函数定义的长度超过了79字符可在函数定义中输入左括号后按回车键并在下一行按两次Tab键从而将形参列表和只缩进一层的函数体区分开来。deffunction_name(parameter_0,parameter_1,parameter_2,parameter_3,parameter_4,parameter_5):function body...
企业数字化 ERP 产品动态
相关推荐
从模型到部署:PP-OCRv5_server_rec_onnx全流程开发指南(附代码示例) 从模型到部署:PP-OCRv5_server_rec_onnx全流程开发指南(附代码示例)
PP-OCRv5_server_rec_onnx是飞桨PaddlePaddle推出的高性能OCR识别模型,专为服务器端部署优化,采用ONNX格式确保跨平台兼容性。本文将带您快速掌握从… · 2026/11/3 9:12:55
安全与伦理:NVIDIA-Nemotron-3-Ultra的偏见缓解与负责任AI实践 安全与伦理:NVIDIA-Nemotron-3-Ultra的偏见缓解与负责任AI实践
NVIDIA-Nemotron-3-Ultra-550B-A55B-NVFP4作为一款先进的AI模型,在提供强大功能的同时,高度重视安全与伦理问题,通过一系列技术手段和管理措施,积极践行… · 2026/11/3 9:12:54
如何快速部署Mistral Medium 3.5 128B:5步完成本地vLLM服务器搭建 如何快速部署Mistral Medium 3.5 128B:5步完成本地vLLM服务器搭建
Mistral Medium 3.5 128B是一款具有1280亿参数的强大开源AI模型,支持256k超长上下文窗口,具备多模态输入、函数调用和推理能力。本文将通过5个简单步骤,教你如何… · 2026/11/3 9:52:57
MiniMax-Text-01:400亿级MoE模型如何突破400万token上下文? MiniMax-Text-01:400亿级MoE模型如何突破400万token上下文?
导语:MiniMax最新发布的4560亿参数混合架构大模型MiniMax-Text-01,通过创新技术组合实现400万token超长上下文处理能力,在多项长文本任务中表现超越主流商业… · 2026/11/3 9:52:57
【58】舌象数据集(有v5/v8模型)/YOLO舌象检测 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 9:52:57
【大数据框架】Calcite 基础概念:从 SQL 到执行计划的思维路径 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 9:51:56
Qwen3-Omni:多模态AI实时交互全攻略 Qwen3-Omni:多模态AI实时交互全攻略
导语
Qwen3-Omni-30B-A3B-Instruct正式发布,作为一款原生支持文本、图像、音视频输入并实时生成语音的多语言全模态模型,它标志着AI交互从单一模态向"感知-理解-响应"全链路智能化的跨越。
行… · 2026/11/3 9:51:56
三环境测试全覆盖:OpenRouter ai-sdk-provider Node、Edge与E2E测试体系解析 【免费下载链接】ai-sdk-provider The OpenRouter provider for the Vercel AI SDK contains support for hundreds of models through the OpenRouter chat and completion APIs. 项目地址: https://gitcode.com/gh_mirrors/ai/ai-sdk-provider 点击查看 免费下载 … · 2026/11/3 9:51:56
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46