Python中的函数

Posted 天行健君子自强不息

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的函数相关的知识,希望对你有一定的参考价值。

函数的格式

def 函数名(形参):
    函数体
    return 返回值

 

函数的返回值

return

  • 结束函数体的执行,并且设定返回值

  • return后面不加入任何内容,默认返回None

  • 不加return默认也是返回None

  • return可是返回多个值,多个值中间用逗号分隔;

示例

def test1():
    for i in range(5):
        pass
    return aaa,bbb
print(test1())

 

函数的参数

传递参数(实参)

  • 是一个实实在在的参数,是占据内存地址的

  • 传递参数是在调用函数的过程当中进行的

 

接收参数(形参)

  • 是一种形式意义的参数

  • 在定义时是不占据内存地址

  • 接收参数是在定义函数的过程中进行的

  • 形参可以没有、一个或者多个;多个形参之间用逗号分隔

 

位置参数

调用函数时根据函数定义的参数位置来传递参数

def print_hello(name, sex):
    sex_dict = {1: u先生, 2: u女士}
    print(hello %s %s, welcome to python world! %(name, sex_dict.get(sex, u先生)))

print_hello(tanggu, 1)
# 两个参数的顺序必须一一对应,且少一个参数都不可以

 

关键字传参

用于函数调用,通过“键-值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求。

def sum1(a, b):
    print(a, b)
    res = a + b
    return res

# 正确示范
ret = sum1(1, 2)
ret = sum1(a=1, b=2)
ret = sum1(b=1 , a=2)

# 错误示范
ret = sum1(1, a = 2)        # 因为a同时接收了两个参数 

 

默认参数

用于定义函数,为参数提供默认值,调用函数时可传可不传该默认参数的值

def classmate(name,sex=):
print(%s : %s%(name,sex))

 

动态参数(*args)

接收所有的位置参数

def sum(*args):
    n = 0
    for i in args:
        n+=i
    return n

print(sum(1,2,3,4))

接收的是按照位置传参的值,组织成一个元组

 

动态参数(**args)

接收所有的关键字传参

def func(**kwargs):
    print(kwargs)

func(a = 1,b = 2,c =3)
func(a = 1,b = 2)
func(a = 1)

接受的是按照关键字传参的值,组织成一个字典

 

解包

*和**,也可以在函数调用的时候使用,称之为解包裹(unpacking)

1、*的解包方式

def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值。
    print(args)

func(1,2,3,4,5)
l = [1,2,3,4,5]
func(*l)  #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散

 

2、**的解包方式

def func(**kwargs):
    print(kwargs)

func(a=1,b=2)
d = {a:1,b:2} #定义一个字典d
func(**d)

 

总结

  1. 站在传参的角度上,参数的传递顺序是:位置传参 >> 关键字传参
  2. 站在形参的角度上,参数的设定顺序是:位置参数 >> 动态参数(*args) >> 默认参数 >> 动态参数(**args)

 

以上是关于Python中的函数的主要内容,如果未能解决你的问题,请参考以下文章

Python中的基本函数及其常用用法简析

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

Python函数

Python代码阅读(第38篇):根据谓词函数和属性字符串构造判断函数

13 个非常有用的 Python 代码片段

python使用上下文对代码片段进行计时,非装饰器