python的函数参数

必选参数

默认参数

可变参数

关键字参数

下面分别简述:

(1)默认参数:
个人感觉这个默认参数就是一个固定参数,你要是不改变这个值,他就是固定的,好拗口

#!/usr/bin/env python
#Author:Big_Bao
def power(x,n=3):
    s = 1
    while n >= 1:
    s = s * x
    n = n-1
    return s
print power(3)

当然这里如果我们想要算出别的也行,比如说我们可以

print power(3,5)

计算出来的就是3^5

上面的这个例子其实就是调用了power(5,3),这个的x就是必选参数,n=3就是默认的参数。有了默认参数,就可以简化调用了

直接power(x)就行了

设置默认参数需要注意的有:
(1)默认参数在必选参数之后               WHY?

(2)如何设置默认参数

在函数中,如果有多个参数的时候,把变化大的参数放在前面,变化小的参数放在后面。变化小的参数可以作为默认参数

(3)默认参数必须指向不变对象。

使用默认参数的优点:降低了函数的调用难度

为什么要设计str、None这样的不变对象呢?因为不变对象一旦创建,对象内部的数据就不能修
改,这样就减少了由于修改数据导致的错误。此外,由于对象不变,多任务环境下同时读取对象不
需要加锁,同时读一点问题都没有。我们在编写程序时,如果可以设计一个不变对象,那就尽量设
计成不变对象。

(2)可变参数:

#!/usr/bin/env python
def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum

这里的   *numbers  代表的意思就是把numbers这个tuple的所有元素作为可变参数穿进去,

(3)关键字参数:

可变参数允许传入任意个字符,这些可变参数在函数调用的时候自动组装成一个tuple,但是关键字参数允许你传入任意个含参数名的参数,这些关键字参数在函数内部自动组装成一个dict

normal;">name: Jack age: 24 other: {'cdef person(name, age, **kw):
print 'name:', name, 'age:', age, 'other:', kw
函数 person 除了必选参数 name 和 age 外,还接受关键字参数 kw 。在调用该函数时,可以只传
入必选参数:
>>> person('Michael', 30)
name: Michael age: 30 other: {}
也可以传入任意个数的关键字参数:
>>> person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}
>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
关键字参数有什么用?它可以扩展函数的功能。比如,在 person 函数里,我们保证能接收
到 name 和 age 这两个参数,但是,如果调用者愿意提供更多的参数,我们也能收到。试想你正在
做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定义
这个函数就能满足注册的需求。
和可变参数类似,也可以先组装出一个dict,然后,把该dict转换为关键字参数传进去:
>>> kw = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, city=kw['city'], job=kw['job'])
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
当然,上面复杂的调用可以用简化的写法:
>>> kw = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **kw)

关键字参数的意思就是说,你可以添加进去输入内容,也可以不输入,即做调查时有必选项,也有课选可不选选

python 函数的参数相关推荐

  1. [教程]Python函数的参数

    Python函数的参数 位置参数.默认值参数.可变参数.关键字参数和命名关键字参数 1 函数结构 def 函数名(参数):函数体返回值 2 位置参数 略 3 默认值参数 略 4 可变参数 # 可变长度 ...

  2. python 函数 默认参数

    python 函数 默认参数 def add(a=1, b=2): # a,b设置默认参数c = a + breturn c c = add(a=2) # 如果不填,就是默认参数 print(c) 4

  3. python函数不定参数求和

    # 先来看python函数定参数求和 def dup1(m ,n ,l):total = 0total = m + n + lreturn total print(dup1(4 ,6 ,8)) #打印 ...

  4. python函数中可变参数的传递方式是_详解Python函数可变参数定义及其参数传递方式...

    Python函数可变参数定义及其参数传递方式详解 python中 函数不定参数的定义形式如下 1. func(*args) 传入的参数为以元组形式存在args中,如: def func(*args): ...

  5. boost::python模块包装几个 C++ 函数 将二维数组操作为采用 NumPy 数组的 Python 函数作为参数

    boost::python模块包装几个 C++ 函数 将二维数组操作为采用 NumPy 数组的 Python 函数作为参数 实现功能 C++实现代码 实现功能 boost::python模块包装几个 ...

  6. Python函数的参数传递方式

    为什么80%的码农都做不了架构师?>>>    Python函数的参数传递方式 一.普通 def add(a,b):return a+b print(add(1,2)) #输出结果: ...

  7. python函数的参数可以接收哪些类型的数据_python强势来袭-0015-函数中的参数-送礼开始...

    接上一讲,这节我们专门介绍python函数的参数处理 本节主要内容 函数的形式参数和实际参数 函数的参数定义规则 函数参数的默认值 函数的可变参数 函数的关键字参数 函数的命名关键字参数 1.3. 函 ...

  8. python 函数中参数的传递方式(三分钟读懂)

    python 函数中参数的传递方式 第一种:指定默认值 def fn1(a = 1): # 函数中的(a)是形参 和外面的变量无关 (这里的是定义函数中指定默认值)print("fn1&qu ...

  9. Python函数和参数

    Dear learners, in this tutorial we are going to learn Python Function and Arguments. Previously we l ...

  10. python函数设置默认参数_深入讲解Python函数中参数的使用及默认参数的陷阱

    这篇文章主要介绍了Python函数中参数的使用及默认参数的陷阱,文中将函数的参数分为必选参数.默认参数.可变参数和关键字参数来讲,要的朋友可以参考下 C++里函数可以设置缺省参数,Java不可以,只能 ...

最新文章

  1. CCF个贷违约预测0.891的baseline代码分享
  2. revit导出lumion插件_建筑工程BIM建模入门级教程——REVIT的几种渲染方式
  3. AFAB-资产折旧时出错 在上一年结算之后您只能记帐到新的一年
  4. mysql select查询2个表_mysql – 为SELECT查询合并2个表?
  5. pycharm同一目录下无法import明明已经存在的.py文件
  6. 云原生人物志|华为云CTO张宇昕:云原生已经进入深水区
  7. IDEA图形化操作git
  8. idea找不到或无法加载主类问题解决
  9. 【Hadoop Summit Tokyo 2016】一小时之内使用Apache Nifi从零到数据流
  10. 谁说“IT 不理解 OT”?开放自动化来破局!
  11. java适合年龄_Java实现三人年龄
  12. IOS之拨打电话的三种方式
  13. Git小乌龟(TortoiseGit) 简单提交代码到github
  14. HS8145X6华为界面telnet23账号密码重置
  15. 爬取豆瓣电影,输出最新电影列表、影评、影评热词统计、词云之一
  16. NGS检测ALK融合大起底--转载
  17. 第一讲——什么是计算机网络?
  18. 公有云NAT 网关比较
  19. 氩弧焊机的电气图_氩弧焊机的工作原理以及接线图
  20. 计算机表格数据怎么样汇总,Excel 中如何汇总相同结构的多个工作表数据

热门文章

  1. 第二章 GuassDB 数据库基础知识
  2. 面试中Spring常见问题
  3. nvidia显卡cuda的性能_性能追平上代万元旗舰!NVIDIA GeForce RTX 3070规格解析
  4. 为什么有些xpath绝对路径拿不到数据_我写的Xpath 为什么爬取不到内容
  5. python dash库_让你事半功倍的小众 Python 库
  6. python123子字符串输出_Python--字符串函数方法全解
  7. mysql case break_按月转移日志表中日志时,mysql总是报‘MySQL server has gone away’这样的错!...
  8. java 合并 set_【Java必修课】各种集合类的合并(数组、List、Set、Map)
  9. QT-QT简介,QT环境与工具链(day1)
  10. 软件外包故事 - 加入团队战斗