函数参数

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. struts2 与spring整合

    要把struts2的action交给spring管理,这样spring才干帮struts2注入须要的的bean(一開始action是由struts初始化,所以想注入spring里面的bean是注入不了 ...

  2. C++学习之虚函数与纯虚函数

    面向对象程序设计(object-oriented programming)的核心思想是数据抽象.继承.动态绑定.通过数据抽象,可以使类的接口与实现分离,使用继承,可以更容易地定义与其他类相似但不完全相 ...

  3. iOS-UITextView-文本输入视图的使用

    #import "ViewController.h" @interface ViewController ()<UITextViewDelegate> { UIView ...

  4. 工作总结 c#如何将两个List集合合并

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  5. hive学习笔记-表操作

    Hive数据类型 基本数据类型 tinyint,smallint,int,biging,float,double,decimal,char,varchar,string,binary,boolean, ...

  6. ios7 真机调试 设置 bitcode

    用Xcode 7 beta 3在真机(iOS 8.3)上运行一下工程,结果发现工程编译不过.看了下问题,报的是以下错误: ld: ‘/Users/**/Framework/SDKs/PolymerPa ...

  7. [linux环境配置]个人用持续更新ing~

    alias ll='ls -la' export PATH=$PATH:~/Desktop/myscript alias gpush='git push origin HEAD:refs/for/ma ...

  8. poj2115 C Looooops——扩展欧几里得

    题目:http://poj.org/problem?id=2115 就是扩展欧几里得呗: 然而忘记除公约数... 代码如下: #include<iostream> #include< ...

  9. thinkphp调试手段

    使用ThinkPHP应该掌握的调试手段经常看到有人问到findAll的返回数据类型是什么之类的问题,以及出错了不知道什么原因的情况,其实还是没有熟悉ThinkPHP内置的调试手段和方法,抛开IDE本身 ...

  10. hdu1814Peaceful Commission(2-SAT)

    Peaceful Commission Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...