首页 > 编程语言 >Python学习笔记(五)

Python学习笔记(五)

时间:2022-11-22 23:34:38浏览次数:34  
标签:__ 函数 Python 笔记 学习 参数 类型 形式参数

函数

定义

Python的函数由函数头和函数体构成,结构如下:

def function_name(parameters):
    """docstring"""
    statement(s)
    return

Python函数定义必须以def关键词开始,def标志着函数头部的开始,函数名称(function_name)是函数头的一部分,它的命名要符合前面讲述的标识符命名规则;函数名称后跟随着一对小括号,括号里面是函数的参数(parameters),参数是可选的,括号后面紧跟着一个冒号(:),标志着函数头的结束和函数体的开始。

文档描述(docstring)是函数体中可选的部分,如果出现,必须出现在函数体的第一行。文档描述以连续的三个单(双)引号开始,也以连续的三个单(双)引号结束,这样可以在多行显示,呈现更多的内容。

statement(s)是函数体语句块,格式必须符合代码缩进的层级要求。
另外还有函数返回语句(return),它是可选的,其作用是返回一个数据给调用者。如果return后没有参数或一个函数体根本就没有return语句,则相当于返回None

 

函数调用

函数定义并不会执行函数体;只有当函数被调用时才会执行此操作。

def wdnmd():
    """
    就是打印一段文字
    """
    print("狠狠的测试")

if(__name__ == "__main__"):
    print("这段文字出来说明我先执行")
    wdnmd()

 

参数传递

传参一直是非常重要的内容,在Python语言的数据类型有不可变类型可变类型两种,因此参数也分可变类型和不可变类型。像数值类型、字节串类型、元组类型等都属于不可变类型,不可变类型变量的特点是被重新赋值后会在内存中生成一个新的对象,原有变量不变。而像列表类型、字典类型等都属于可变类型,即变量在被重新赋值后,本身指向的内存地址并没有变动,只是其内部数据被修改了

Python对不可变类型参数的传递采用“值传递(pass by value)”方式。当函数被调用时,系统会为形式参数分配独立的内存空间,并用实际参数值初始化对应的形式参数,这样就把实际参数的值传递给了形式参数。在值传递方式中,实际参数和形式参数各自占有自己的内存空间,参数只能由实际参数向形式参数传递,不论被调函数对形式参数内容作何修改,对相应的实际参数都没有影响

Python对可变类型参数的传递采用“地址传递(pass by address)”方式。当函数被调用时,系统不会为形参分配新的空间,只是把实参的内存地址传给被调函数。这样如果在函数内对形参内容做了修改,会影响到实参。

标签:__,函数,Python,笔记,学习,参数,类型,形式参数
From: https://www.cnblogs.com/haibersut/p/16916887.html

相关文章

  • Head First Java 读书笔记 16章
    有哪些常用的集合?ArrayListTreeSet以有序状态保存并可防止数据重复HashMap以键值对的形式保存数据LinkedList针对经常插入或删除中间元素所设计的高效率集合HashSe......
  • JWT( JSON Web Token —— JSON Web 令牌 )的学习笔记
    一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样:1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用......
  • 第十四届蓝桥杯校内模拟赛第二期——Python
    第十四届蓝桥杯校内模拟赛第二期——Python目录第十四届蓝桥杯校内模拟赛第二期——Python第一题问题描述答案提交答案第二题问题描述答案提交答案第三题问题描述答案提交......
  • Linux笔记03: Linux常用命令_3.1命令的基本格式
    3.1命令的基本格式 3.1.1命令提示符[root@localhost~]#这就是Linux系统的命令提示符。各部分含义如下:●[]:这是提示符的分隔符号,没有特殊含义。●ro......
  • python打包工具distutils
    参考: http://www.cppcns.com/jiaoben/python/225742.htmlpython源码包安装:pythonsetup.pyinstalldistutilsdistutils是python标准库的一部分,这个库的目的是为开......
  • C/C++语言学习的策略
    断章取义C语言出现50年了,有很多内容已过时,至少有百分之二十的内容没有实用价值。C++更过份,对程序员来说,至少有百分之七十的内容没有实用价值。Linux系统也是,命令上千个,对程......
  • C/C++程序员如何学习英语
       英语是程序员的重要技能,有多重要?比较重要,极其重要吗?也不一定。    我是高中毕业,在刚开始学习计算机的一两年,曾经买过许国璋英语四级和计算机英文方面的书籍......
  • mybatis学习第⼗部分:Mybatis源码剖析
    10.1传统⽅式源码剖析:源码剖析-初始化Inputstreaminputstream=Resources.getResourceAsStream("mybatis-config.xml");//这⼀⾏代码正是初始化⼯作的开始。SqlSes......
  • 《动手学强化学习》笔记
    课本链接Multi-ArmedBandit伯努利Multi-ArmedBanditimportnumpyasnp#支持数组和矩阵运算的库importmatplotlib.pyplotasplt#绘图库classBernoulliBa......
  • Spring Security笔记
    这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战SpringSecurity简介SpringSecurity是一种高度自定义的安全框架,利用(基于)SpringIOC/DI和AOP功能,为系统......