前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >「Python」函数返回值、嵌套调用、执行结果

「Python」函数返回值、嵌套调用、执行结果

原创
作者头像
python自学网
发布于 2022-05-16 06:18:53
发布于 2022-05-16 06:18:53
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

一、函数的返回值

函数返回值的作用:

在程序开发中,有时候会希望一个函数执行结束后,告诉调用者一个结果,一遍调用者针对具体的结果做后续的处理。

返回值含义:

它是函数完成工作后,最后给调用者的一个结果。

函数返回结果的方式:

在函数中使用return关键字可以返回结果。

怎样获得返回结果:

调用函数一方,可以使用变量来接收函数的返回结果

注意:return表示返回,后续的代码都不会被执行

代码体验:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def sum_num2(num1, num2):
    """对两个数字的求和"""

    result = num1 + num2
    # 可以使用返回值,告诉调用函数一方计算的结果
    return result
#  可以使用变量来接收函数执行的返回结果
sum_result = sum_num2(30, 20)

print("计算结果%d" % sum_result)

执行结果:

计算结果50

如何理解return后续的代码都不会被执行?

利用PyCharm就可以很直观的看出,首先我们把光标放在上述代码中的result = num1 + num2之后按下回车键,光标的位置自然而然的到下一行这时候有缩进四格表示后面的代码可以执行到,我们再把光标重新移步到return result的后面按住回车键后光标位置自动到下一行但是这时候并没有空四格而是顶格,表示这一行输入的代码就不属于函数内部了,也就是return之后的代码不会被执行到。

如果强行在return之后写代码会PyCharm有提示如下图:

num= 1000这段代码不会被到达,因为函数执行到return 就会返回到调用函数的位置,在return下方的的代码都不会被执行


二、函数的嵌套调用

函数嵌套调用含义:

一个函数里面又调用了另外一个函数,这就是函数嵌套调用

如果函数test2中调用了另外一个函数test1

执行步骤:

那么执行到调用函数test1函数时,辉县吧函数test1中的任务都执行完才会回到tezt2中调用函数test1位置,继续执行后续的代码

代码体验:没有嵌套之前的2个函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def test1():
    print("*" * 10)
    print('test1')


def test2():
    print("-" * 10)
    print('test2')


test1()
test2()

执行结果:

代码体验:函数的嵌套调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def test1():
    print("*" * 10)
    print('test1')


def test2():
    print("-" * 10)
    print('test2')

    # 函数的嵌套调用
    test1()
    print("+" * 10)


test2()

执行结果:

下面用一张执行线路图再结合文字说明来解释一下函数嵌套调用的具体步骤:

步骤:我们都知道代码是自上而下执行的,首先执行第一行代码告诉解释器这是一个函数test1,那么不用管继续向下执行,又碰到第6行的第二个函数test2,也不用管继续向下执行,好了到了第15行调用函数test()这一行代码,那么根据函数的调用步骤,调转到第6行去执行test2函数里面的代码,输出第7行第8行代码,继续向下执行,到了第11行调用函数test1,那么跳到函数test1定义的位置执行函数test1里面的代码,执行完test1函数里的第3行代码后再调到函数test2里面调用函数test1的位置继续向下执行到第12行代码,执行完第12行代码后整个函数test2执行结束,执行结束后直接跳转到test2函数调用的位置,继续向下行走发现没有其他代码了程序终止。

以上就是关于函数的返回值和函数嵌套调用的说明,这也是一次个人认为较为详细的学习笔记记录,希望可以帮助到大家,特别是对于刚学习Python基础教程文章的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
serialVersionUID 问题处理
类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法进行序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。
六月的雨在Tencent
2024/03/28
1050
serialVersionUID 问题处理
一文看懂Java序列化之serialVersionUID
serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastException。
JavaFish
2019/10/22
4K0
无聊小知识01.serialVersionUID的作用
Java(TM)对象序列化规范中描述到:serialVersionUID用作Serializable类中的版本控件。如果您没有显式声明serialVersionUID,JVM将根据您的Serializable类的各个方面自动为您执行此操作。(http://docs.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html)。
有一只柴犬
2024/01/25
1260
无聊小知识01.serialVersionUID的作用
serialVersionUID详解「建议收藏」
简单来说,Java的序列化机制是通过类的serversionUID来验证版本一致性的。在反序列化时,JVM会将传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastException。
全栈程序员站长
2022/09/07
9010
19条 IDEA 优化设置技巧
svn文件修改后,默认只有当前文件更改而父文件没有标注,很不直观;查了一顿后,发现,可以设置;
一行Java
2023/09/04
4850
19条 IDEA 优化设置技巧
序列化与ArrayList 的elementData的修饰关键字transient
  transient用来表示一个域不是该对象序行化的一部分,当一个对象被序行化的时候,transient修饰的变量不会被序列化
江湖前辈黄药师
2018/09/28
8640
Java Serializable 序列化学习笔记 及transient关键字 及 serialVersionUID 作用
Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。
大鹅
2021/06/16
4740
讲真,下次打死我也不敢随便改serialVersionUID了
序列化是一种对象持久化的手段。普遍应用在网络传输、RMI等场景中。类通过实现 java.io.Serializable 接口以启用其序列化功能。
Bug开发工程师
2019/09/10
8170
讲真,下次打死我也不敢随便改serialVersionUID了
详述 IntelliJ IDEA 中自动生成 serialVersionUID 的方法
本文介绍了如何在 IntelliJ IDEA 中自动生成 serialVersionUID,从而解决在实现 Serializable 接口时无法自动生成 serialVersionUID 的问题。首先,介绍了如何安装并设置 GenerateSerialVersionUID 插件。然后,介绍了通过设置 Inspections 功能,在创建类并实现 Serializable 接口时生成 serialVersionUID 的步骤。
CG国斌
2018/01/08
2.7K0
详述 IntelliJ IDEA 中自动生成 serialVersionUID 的方法
IDEA 自动生成 serialVersionUID 快捷键
java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。
一个会写诗的程序员
2019/11/21
1.6K0
为什么阿里Java规约要求谨慎修改serialVersionUID字段
serialVersionUID是在Java序列化、反序列化对象时起作用的一个字段。Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidClassException。
Happyjava
2019/07/16
1K0
为什么阿里Java规约要求谨慎修改serialVersionUID字段
java.io.InvalidClassException异常解决
serialVersionUID用作Serializable类中的版本控件。如果您没有显式声明serialVersionUID,JVM将根据您的Serializable类的各个方面自动为您执行此操作,如Java(TM)对象序列化规范中所述。 序列化运行时将每个可序列化类与版本号相关联,称为serialVersionUID,在反序列化期间使用该版本号来验证序列化对象的发送方和接收方是否已加载与该序列化兼容的该对象的类。如果接收者为具有与相应发送者类的serialVersionUID不同的对象加载了一个类,则反序列化将导致InvalidClassException。 通俗理解就是serialVersionUID是适用于Java的序列化机制,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是java.io.InvalidClassException。 serialVersionUID两种生成方式: a.显式声明,该字段必须是static,final和long类型: private static final long serialVersionUID = 1L; b.如果没有显式声明serialVersionUID,JVM将使用自己的算法生成默认SerialVersionUID。
六月的雨在Tencent
2024/03/28
3920
Java序列化,碰到serialVersionUID不一致怎么处理?
公司有个子服务较多,交互频繁的系统,有一些需要共享传输的对象,它们通过 JDK 序列化(Java Object Serialization)后进行交互;但是由于一些不可描述的历史原因,这些对象存在多个版本,每个版本中的属性不一致,且未设置 serialVersionUID。
架构师修炼
2021/06/25
1.1K0
Java序列化,碰到serialVersionUID不一致怎么处理?
idea自动生成serialVersionUID
六月的雨在Tencent
2024/03/28
1970
idea自动生成serialVersionUID
Intellij IDEA用快捷键自动生成序列化id
类继承了Serializable接口之后,使用alt+enter快捷键自动创建序列化id 
明明如月学长
2021/08/27
5.7K0
IDEA自动生成serialVersionUID
新建一个实体XXX,实现java.io.Serializable接口,然后将光标放到类名XXX上,按alt+enter(快捷键可能不一样,根据自己的设置来),选择Add 'serialVersionUID' field确定回车即可
試毅-思伟
2019/08/16
1.5K0
Idea几个常用快捷键 顶
Alt+Ins 除了自动设置get,set以外,当然就是重写接口或者父类的方法。
算法之名
2019/08/20
5080
Idea几个常用快捷键
                                                                            顶
IDEA的主题等环境配置
选择一个自己喜欢的配色方案,比找个漂亮的女朋友更重要,因为你和IDEA相处的时间比她还要多。
用户2987604
2020/06/15
1.4K0
Intellij idea用快捷键自动生成序列化id
Intellij idea用快捷键自动生成序列化id Intellij idea用快捷键自动生成序列化id 进入Prefernces 快捷键command+, Inspections→Serialization issues→ serializable class without ‘serialVersionUID’ 旁边打勾 设置好了使用alt+enter快捷键自动创建序列化id http://blog.csdn.net/u013806366/article/details/51911529
Albert陈凯
2018/04/04
1.8K0
Intellij idea用快捷键自动生成序列化id
【Java 基础篇】serialVersionUID 详解
在 Java 中,serialVersionUID 是一个用于标识序列化类版本的特殊字段。它是一个长整型数值,通常在实现 Serializable 接口的类中使用,用于确保序列化和反序列化的一致性。在本文中,我们将详细解释 serialVersionUID 的作用、用法以及相关的注意事项。
繁依Fanyi
2023/10/12
7080
【Java 基础篇】serialVersionUID 详解
推荐阅读
相关推荐
serialVersionUID 问题处理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文