【Python】12、函数-02

文章目录

    • 1. 返回值
    • 2.文档字符串
    • 3. 作用域
    • 4. 命名空间

1. 返回值

返回值就是函数执行以后返回的结果,可以通过return来指定函数的返回值。返回值可以通过变量接收返回值

  • return 后可以返回任意的对象,甚至是一个函数
  • 如果仅写一个return或者不写return,则相当于return None
  • 函数中return后的代码都不会执行
def fn() : return 123;res = fn()
print('res = ',res)# 结果:
res =  123***Repl Closed***

2.文档字符串

help()是Python中的内置函数,通过help()函数可以查询Python中的函数用法
语法:help(函数对象)


help(print)# 结果:
Help on built-in function print in module builtins:print(*args, sep=' ', end='\n', file=None, flush=False)Prints the values to a stream, or to sys.stdout by default.sepstring inserted between values, default a space.endstring appended after the last value, default a newline.filea file-like object (stream); defaults to the current sys.stdout.flushwhether to forcibly flush the stream.***Repl Closed***
  • 文档字符串(doc str)
    在定义函数时,可以在函数内部编写文档字符串,文档字符串就是函数的说明,编写的文档字符串可以通过help()函数进行查看

定义方法:在函数的第一行写一个字符串就是文档字符串,一般使用双重引号进行跨行描述。

def fn(a,b,c) : '''这是一个求和方法,将传入的a,b,c三个数进行求和'''return a+b+c;help(fn)# 结果:
Help on function fn in module __main__:fn(a, b, c)这是一个求和方法,将传入的a,b,c三个数进行求和***Repl Closed***

3. 作用域

作用域(scope)指的是变量的生效区域,在Python中共有两种作用域:

  • 全局作用域
    全局作用域在程序执行时创建,在程序执行结束时销毁;
    所有函数以外的区域都是全局作用域;
    全局作用域中定义的变量,都属于全局变量,全局变量可以在程序任意位置访问到

  • 函数作用域
    函数作用域在函数调用时创建,在调用结束时销毁;
    函数每调用一次就会产生一个新的函数作用域;
    在函数作用域中定义的变量,都是局部变量,只能在函数内部被访问

  • 变量的查找
    当使用变量时,会优先在当前作用域中寻找该变量,如果有则使用,如果没有则往上级作用域寻找,直到找到为止,如果最终全局作用域没有找到则报错


a = 123def fn() : b = 10print('a = ',a)print('b = ',b)fn()# 结果:
a =  123
b =  10***Repl Closed***

a = 123def fn() : b = 10print('a = ',a)fn()
print('b = ',b)# 结果:
a =  123
Traceback (most recent call last):File "C:\Users\Administrator\AppData\Roaming\Sublime Text\Packages\User\函数.py", line 18, in <module>print('b = ',b)^
NameError: name 'b' is not defined***Repl Closed***

在函数中为变量赋值时,默认都是为局部变量赋值,如果希望在函数内部修改全局变量,则需要使用global关键字来声明变量


a = 123def fn() : a = 456print('内部a = ',a)fn()
print('外部a = ',a)# 结果:
内部a =  456
外部a =  123***Repl Closed***

a = 123def fn() : global aa = 456print('内部a = ',a)fn()
print('外部a = ',a)# 结果:
内部a =  456
外部a =  456***Repl Closed***

4. 命名空间

命名空间(namespace)指的是变量存储的位置,每一个变量都需要存储到指定的命名空间中。
每一个作用域都会有一个对应的命名空间。全局命名空间,用来保存全局变量,函数命名空间用来保存函数中的变量。命名空间实际上是个字典,专门用来存储变量的字典

  • locals() 用来获取当前作用域的命名空间
    如果在全局作用域中调用locals() 返回全局命名空间,如果在函数作用域中调用locals()则获取函数命名空间,返回的是一个字典
a = 123scope = locals()print(type(scope))
print(a)
print(scope['a'])# 结果
<class 'dict'>
123
123***Repl Closed***
scope = locals()scope['c'] = 456 # 一般不建议这样操作print(c)
print(scope['c'])
# 结果
456
456***Repl Closed***
  • 函数内部的命名空间
def fn() : scope = locals()print(scope)fn()# 结果:
{}***Repl Closed***
  • global() 函数可以获取到全局的命名空间
def fn() : globals_scope = globals()print(globals_scope)fn()# 结果
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000028EC9419CD0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:\\Users\\Administrator\\AppData\\Roaming\\Sublime Text\\Packages\\User\\函数.py', '__cached__': None, 'fn': <function fn at 0x0000028EC97FF240>}***Repl Closed***

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

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

相关文章

Unity插件-适用于画面传输的FMETP STREAM使用方法(三)基础使用

目录 一、插件介绍 二、组件介绍 三、Game View Streaming 1、使用 FM Network UDP 的基本设置 Server Scene Client Scene 2、使用使用 FM WebSocket 的基本设置 四、Audio Streaming 五、Microphone Streaming 一、插件介绍 ​​​​​​Unity插件-适用于画面传输的…

如何为预训练模型进行领域适配:全参数微调、LoRA 还是 Prompt Tuning?

目录 如何为预训练模型进行领域适配&#xff1a;全参数微调、LoRA 还是 Prompt Tuning&#xff1f; 1. 全参数微调&#xff08;Full Fine-tuning&#xff09; 适用场景 优缺点 示例代码&#xff08;使用 Hugging Face Transformers 进行全参数微调&#xff09; 2. LoRA&am…

C++ —— 线程同步(互斥锁)

C —— 线程同步&#xff08;互斥锁&#xff09; 线程同步互斥锁&#xff08;互斥量&#xff09;测试代码mutex互斥锁 线程同步 线程同步&#xff1a;多线程协同工作&#xff0c;协商如何使用共享资源。 C11线程同步包含三部分内容&#xff1a; 互斥锁&#xff08;互斥量&…

UI设计中的加载动画:优化用户体验的细节

hello宝子们...我们是艾斯视觉擅长ui设计和前端数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在数字产品泛滥的今天&#xff0c;用户对体验的要求早已超越功能本身。一个看似简单的加载动画&…

SpringBoot3+Vue3实战(Vue3快速开发登录注册页面并对接后端接口)(4)

目录 一、SpringBoot3Vue3实现基本增删改查。前后端通信交互、配置后端跨域请求。数据批量删除。(博客链接) 二、SpringBoot3Vue3快速开发登录、注册页面并实现对接。 &#xff08;1&#xff09;操作数据表employee(员工信息表)。 <1>修改employee表的字段组成。 <2&g…

Python标准库中bisect模块的bisect_right()函数在网格交易中的应用

本文将深入探讨Python标准库中bisect模块的bisect_right()函数在网格交易中的具体应用。 bisect模块 bisect模块是Python标准库中的一个模块&#xff0c;提供了对有序列表的插入和搜索操作的支持。它基于二分查找算法&#xff0c;可以高效地在有序列表中查找或插入元素&#x…

Excel(函数篇):IF函数、FREQUNCY函数、截取函数、文本处理函数、日期函数、常用函数详解

目录 IF函数等于判断区间判断与AND函数、OR函数一同使用IFNA函数和IFERROR函数 FREQUNCY函数、分断统计LEFT、RIGHT、MID截取函数FIND函数、LEN函数SUBSTITUTE函数ASC函数、WIDECHAR函数实战&#xff1a;如何获取到表中所有工作簿名称文本处理函数TEXT函数TEXTJOIN函数 日期函数…

生成PDF文件:从html2canvas和jsPdf渲染到Puppeteer矢量图

刚刚实现而已&#xff1a;第一次明白&#xff0c;双击或file:///打开html文件&#xff0c;居然和从localhost:3000打开同一个html文件有本质的区别。 字体居然还能以Base64代码嵌入到网页&#xff0c;只是太大太笨。 需要安装node.js&#xff0c;npm安装更多依赖&#xff1a;…

Git 分支删除操作指南(含本地与远程)

&#x1f680; Git 分支删除操作指南&#xff08;含本地与远程&#xff09; 在多人协作的开发过程中&#xff0c;定期清理已合并的临时分支&#xff08;如 feature/*、bugfix/*、hotfix/* 等&#xff09;可以保持仓库整洁&#xff0c;避免混乱。 &#x1f4cc; 分支命名规范回…

Qt中打开windows的cmd窗口并显示

在windows上&#xff0c;用Qt的GUI程序打开另一个程序&#xff0c;使用QProcess即可&#xff0c;并且被打开的程序通常也会显示出来&#xff0c;但是如果想要打开dos窗口并显示&#xff0c;并执行其中的命令或者批处理&#xff0c;则需要使用QProcess提供的windows特有的函数QP…

Modbus TCP到RTU:轻松转换指南!

Modbus TCP 到 RTU&#xff1a;轻松转换指南&#xff01; 在现代工业自动化领域&#xff0c;Modbus TCP和Modbus RTU两种通信协议因其高效、稳定的特点被广泛应用。然而&#xff0c;随着技术的发展和设备升级的需求&#xff0c;经常会遇到需要将这两种协议进行互相转换的场景。…

微信小程序订阅消息发送消息,点击消息进入小程序页面

1、在小程序官网订阅消息选用或创建消息模板获取模板ID可多个 如图&#xff1a; 2、微信小程序前端页面发送请求订阅权限 请求模板id的权限可以是一个可以是多个&#xff0c;用户同意订阅&#xff0c;获取code传递给后端——后端拿到code生成唯一的openid用于发送订阅消息 注…

卷积神经网络 - 卷积层

卷积神经网络一般由卷积层、汇聚层和全连接层构成&#xff0c;本文我们来学习卷积层。 卷积层&#xff08;Convolutional Layer&#xff09;是卷积神经网络&#xff08;CNN&#xff09;的核心组件&#xff0c;专门用于处理具有网格结构的数据&#xff08;如图像、音频、时间序…

Vue3全局化配置(ConfigProvider)

效果如下图&#xff1a; 在线预览 APIs ConfigProvider 参数说明类型默认值theme主题对象Theme{}abstractboolean是否不存在 DOM 包裹元素truetagstringConfigProvider 被渲染成的元素&#xff0c;abstract 为 true 时有效‘div’ Theme Type 名称说明类型默认值common?全…

LabVIEW烟气速度场实时监测

本项目针对燃煤电站烟气流速实时监测需求&#xff0c;探讨了静电传感器结构与速度场超分辨率重建方法&#xff0c;结合LabVIEW多板卡同步采集与实时处理技术&#xff0c;开发出一个高效的烟气速度场实时监测系统。该系统能够在高温、高尘的复杂工况下稳定运行&#xff0c;提供高…

若依excel工具类导出excel模板数据带下拉映射

导出模板代码&#xff0c;原理是combo属性 传递一个数组 里面是label下拉数组。 Overridepublic void downloadTemplate(HttpServletResponse response) {ExcelUtil<ThMachineryManageExcel> util new ExcelUtil<>(ThMachineryManageExcel.class);List<SysDist…

3.8 Spring Boot监控:Actuator+Prometheus+Grafana可视化

在Spring Boot应用中&#xff0c;通过整合Actuator、Prometheus和Grafana可以构建完整的监控体系&#xff0c;实现指标采集、存储和可视化。以下是具体实现步骤&#xff1a; 一、Spring Boot Actuator 配置 作用&#xff1a;暴露应用健康指标、性能数据等监控端点。 1. 添加依…

启幕数据结构算法雅航新章,穿梭C++梦幻领域的探索之旅——二叉树序列构造探秘——堆的奥义与实现诗篇

人无完人&#xff0c;持之以恒&#xff0c;方能见真我&#xff01;&#xff01;&#xff01; 共同进步&#xff01;&#xff01; 文章目录 一、堆的定义与结构二、堆的实现1.堆的初始化和销毁堆的初始化堆的销毁 2.向上调整算法和入堆向上调整算法入堆 3.向下调整算法和出堆顶数…

“Failed to Load SteamUI.dll” 错误详解:全面解析与高效解决方案,助你快速修复 Steam 客户端问题

在使用 Steam 客户端时&#xff0c;你是否遇到过 failed to load steamui.dll 错误&#xff1f;这个令人头疼的问题可能导致 Steam 无法正常启动&#xff0c;影响游戏体验。Failed to load steamui.dll 错误通常与文件损坏、系统配置或软件冲突有关&#xff0c;但无需担心&…

STM32 DAC详解:从原理到实战输出正弦波

目录 一、DAC基础原理1.1 DAC的作用与特性1.2 DAC功能框图解析 二、DAC配置步骤2.1 硬件配置2.2 初始化结构体详解 三、DAC数据输出与波形生成3.1 数据格式与电压计算3.2 正弦波生成实战3.2.1 生成正弦波数组3.2.2 配置DMA传输3.2.3 定时器触发配置 四、常见问题与优化建议4.1 …