函数参数

1.位置参数

类似于java函数的基本参数,按照顺序和结构定义参数

2.默认参数

def method(param,defaultParam=defaultValue)

调用时,可以调用method(param)或者method(param,param),当调用时不传defaultParam时,函数使用默认参数进行计算。

定义默认参数要注意:

(1)必选参数在前,默认参数在后

(2)设置时:变化大的参数在前,变化小的参数在后,变化小的参数可以使用默认参数

(3)定义默认参数必须指向不可变对象

使用默认参数能降低调用函数的难度,而且在调用时,如果存在多个默认参数,可以不按顺序提供默认参数,但必须把参数名写上

3.可变参数

def method(param,*params)

params必须是一个list或者tuple,

调用时可以先定义list或tuple,然后在list或tuple变量名前加*,类似:list=[1,2,3],method(*list)

4.关键字参数

def method(param,**kw)

关键字参数允许传入0个或者任意个数含参数名的参数,这些参数在函数内部自动组装成一个dict

同可变参数,调用时可以先定义一个dict,然后调用dict={'key','vaule'},method(**dict)

5.命名关键字参数(最难的一点)

定义逻辑: def method(param,*,name) *后面的参数被视为命名关键字参数,如果函数定义中已经有了一个可变参数,则定义模式:def method(param,*params,name),不再需要分隔符*

调用方式:命名关键字必须传入参数名;

               命名关键字参数有default 值,则可不传入参数

6.参数组合

定义函数,可以使用上诉5种参数组合使用,但是参数顺序为,位置参数,默认参数,可变参数,命名关键字参数,关键字参数,但实际上不推荐这样使用,降低了代码的可读性

 

python学习笔记--关于函数的那点事1的更多相关文章

  1. Python学习笔记之函数

    这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...

  2. 小甲鱼:Python学习笔记003_函数

    >>> # 函数>>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!") ...

  3. Python学习笔记 - day6 - 函数

    函数 函数在编程语言中就是完成特定功能的一个词句组(代码块),这组语句可以作为一个单位使用,并且给它取一个名字.可以通过函数名在程序的不同地方多次执行(这叫函数的调用).函数在编程语言中有基本分为:预 ...

  4. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  5. Python学习笔记(五)函数和代码复用

    函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...

  6. python学习笔记(4)--函数

    1.函数 函数是指将一组语句的集合通过一个名字封装起来.要想执行这个函数,只需调用其函数名即可. 函数的特性: 1.减少重复代码 2.使程序变的课扩展 3.使程序变得易维护 语法定义: def pri ...

  7. Python学习笔记-Day3-python函数

    1.为什么要用函数? 提高代码重复利用率,减少代码冗余.封装模块化代码,便于调用 2.函数声明定义(注意:函数先声明后调用) 注意:函数的reture循环中的exit功能一样(函数不执行,终止) 函数 ...

  8. Python学习笔记11—函数

    建立第一个函数 /usr/bin/env Python #coding:utf-8 def add_function(a,b): c = a+b print c if __name__==" ...

  9. Python学习笔记7-把函数当参数传递、指定可变参数

    把函数当参数传递 # 函数参数传递 # 面向对象编程就是把对象传来传去 # 面向函数编程就是把函数传来传去 def mytest(num): return num * 2 # # 不光可以传递变量,还 ...

随机推荐

  1. duilib中加入自己定义控件之后怎么可以在xml文件里配置使用

    加入自己定义控件可能有两种不同的情况: 1.  在duilib库中加入的自己定义控件. 2.  在我们的应用程序中自己重写了一个控件. 以下開始解说不同的情况下怎么才干支持在xml文件配置控件: 1. ...

  2. iOS常用的宏定义总结

    字符串是否为空 1   #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str le ...

  3. POJ 2367:Genealogical tree(拓扑排序)

    Genealogical tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2738 Accepted: 1838 Spe ...

  4. Java程序执行超时——Future接口介绍

    在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现. Future接口是Java标准API的一部分,在java.uti ...

  5. PowerDesigner中导入MYSQL数据库结构的步骤及问题解决

    今天在使用PowerDesigner,要导入MySql的表结构到PowerDesginer里, 记录下详细的操作步骤: 1.首先要确保机器安装了MySql的ODBC驱动,去http://dev.mys ...

  6. 【Ubuntu】莫名其妙硬盘空间满了

    一个个翻找,发现是 ~/.cache 占用了很多空间,遂删去其中内容 没有什么负面影响,删掉之后节省了许多空间

  7. 备忘录模式之C++实现

    说明:本文仅供学习交流.转载请标明出处,欢迎转载.  备忘录模式是一种比較简单的设计模式.该模式非常好地体现了一种面向对象的封装思想. 该模式的思想是用一个专门的备份类将当前的状态信息保存起来.在整个 ...

  8. Elasticsearch安装中文分词插件ik

    Elasticsearch默认提供的分词器,会把每一个汉字分开,而不是我们想要的依据关键词来分词.比如: curl -XPOST "http://localhost:9200/userinf ...

  9. Codesys——限定符的使用方法[来自Codesys的Help]

    Qualifier for actions in SFC In order to configure in which way the actions should be associated to ...

  10. openstack封装待调试