函数传递参数时的简要关键点:

1、参数的传递是通过自动将对象赋值给本地变量名来实现的。函数参数在实际中只是Python赋值的一个实例。因为引用是以指针的形式实现的,所有的参数实际上都是通过指针进行传递的。

2、在函数内部的参数名的赋值不会影响调用者。

3、改变函数的可变对象参数的值也许会对调用者有影响。即是参数是简单的赋值给传入的对象,函数能够就地改变传入的可变对象,因此其结果会影响调用者。可变参数对于函数来说是可以做输入和输出的。

对可变对象的在原处的修改会影响其他引用了该对象的变量。

如果不想要函数内部在原处的修改影响传递给它的对象,我们可以简单的创建一个明确地可变对象的拷贝;

 L = [1,2]
b = L[:] #b即是对L的拷贝

参数匹配模型大纲:

1、位置:从左至右匹配    一般情况下,也是我们迄今为止最常使用的方法,是通过位置进行匹配把参数值传递给函数头部的参数名称,匹配顺序为从左到右。

2、关键字参数:通过参数名进行匹配   调用者可以定义哪一个函数接受这个值,通过在调用时使用参数的变量名,使用name = value 这样的语法。

3、默认参数:为没有传入值得参数定义参数值   如果调用时传入的值过于少的话,函数能够为参数定义接受的默认值,再一次使用语法name=value。

4、可变参数:收集任意多给予位置或关键字的参数   函数能够使用特定的参数,他们是以字符*开头,收集任意多的额外参数。

5、可变参数解包:传递任意多的给予位置或关键字的参数   调用者能够再使用*语法去将参数集合打散,分成参数。这个*与在函数头部的*恰恰相反,在函数头部它意味着收集任意多的参数,而在调用者中意味着传递任意多的参数。

6、keyword-only参数:参数必须按照名称传递

Python函数中的参数(一)的更多相关文章

  1. Python 函数中,参数是传值,还是传引用?

    在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的?回答这个问题前,不如先来看两段代码. 代码段1: def foo(arg): arg = 2 print(a ...

  2. python函数中的参数类型

    python函数中的参数 动态获取函数的参数 python的函数类型详解

  3. Python函数中的参数(二)

    当使用混合特定的参数匹配模型时,Python将会遵循以下有关顺序的法则: 1.在函数调用中,参数必须以这样的顺序出现:任何位置参数(Value).任何关键字参数(name = Value)和*sequ ...

  4. 在python函数中默认参数的一些坑

    一.默认参数 python为了简化函数的调用,提供了默认参数机制: 这样在调用pow函数时,就可以省略最后一个参数不写: 在定义有默认参数的函数时,需要注意以下: 必选参数必须在前面,默认参数在后: ...

  5. python函数中的参数(关键字参数,默认参数,位置参数,不定长参数)

    默认参数:定义函数的时候给定变量一个默认值. def num(age=1): 位置参数:调用函数的时候根据定义函数时的形参位置和实参位置进行引用. 关键字参数:如果定义的函数中含有关键字参数,调用函数 ...

  6. Python函数中的参数

    形参:形式参数 实参:实际参数 1.普通参数:严格按照顺序将实参赋值给形参. 2.默认参数:必须放置在参数列表的最后. 3.指定参数:将实参赋值给制定参数. 4.动态参数: *:默认将传入的参数,全部 ...

  7. Python函数中的可变参数

    在Python函数中,还可以定义可变参数. 如:给定一组数字a,b,c……,请计算a2 + b2 + c2 + ……. 要定义出这个函数,我们必须确定输入的参数.由于参数个数不确定,我们首先想到可以把 ...

  8. python函数中把列表(list)当参数时的"入坑"与"出坑"

    在Python函数中,传递的参数如果默认有一个为 列表(list),那么就要注意了,此处有坑!! 入坑 def f(x,li=[]): for i in range(x): li.append(i*i ...

  9. Python函数中参数类型

    在学习Python函数的时候,函数本身的定义和调用并不是很复杂,但是函数的参数类型和用法的确有些复杂.在此做一个小结,加深理解. Python参数的定义 负责给函数提供一些必要的数据或信息,以保证函数 ...

随机推荐

  1. mysql 可能会用到的一些 函数

    DATE_SUB(sysdate(), INTERVAL 8 HOUR)  //当前时间前 8小时 ifnull("","")  Parameter //添加一 ...

  2. iOS AudioQueue机制的延迟问题探究

    关键字:VOIP,AudioUnit,AudioQueue,RemoteIO问题描述VOIP通话,iOS底层音频方式采用AudioUnit机制,本来也挺好,但是会有遇到CS域来电时RemoteIO挂死 ...

  3. android之OptionMenu

    一.现在我给大家介绍两个不同版本的模拟器(2.3.3和4.0.3) 1.布局文件 (1)打开“res/layout/activity_main.xml”文件. 先看mian布局文件 <Relat ...

  4. RelativeLayout.LayoutParams.addRule()方法

    1.应用场景 在使用RelativeLayout布局的时候,通常在载入布局之前在相关的XML文件中进行静态设置即可.但是,在有些情况下,我们需要动态的设置布局 的属性,在不同条件下设置不同的布局排列方 ...

  5. JavaWeb用Jdbc操作MySql数据库(二)

    一.仍然使用前面的环境和示例数据库. 二.建立发出注册请求的页面index3.jsp. <%@ page language="java" import="java. ...

  6. Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题

    标签:scrollview   android   滑动   嵌套 scrollview 嵌套recyclerview 时,recyclerview不显示,这就需要我们自己计算recyclerview ...

  7. Windows 10 x64 安装 Visual Basic 6.0 SP6

    原文是E文,E文好的可以直接看这里:http://www.fortypoundhead.com/showcontent.asp?artid=23993 原则上Windows 7 x64, Window ...

  8. CSS之利用text-indent隐藏文字用图片当Login

    html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  9. WebJars 进行 css js 资源文件管理

    WebJars是将这些通用的Web前端资源打包成Java的Jar包,然后借助Maven工具对其管理,保证这些Web资源版本唯一性,升级也比较容易.关于webjars资源,有一个专门的网站http:// ...

  10. jquery选择器之内容选择器

    HTML示例代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...