python3 函数function

Posted hyc-blog

tags:

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

def function(arg):

    pass

作用域:

  作用域就是当程序在处理变量时,存放变量名的空间,也叫做命名空间;当class def时,才会生产局部作用域,if,for,while,try这些是语句块,不会产生局部作用域 ;全局变量只能以只读的方式被局部作用域访问,如果想在局部作用域创建或修改全局变量,应使用global声明;查找变量优先级:局部作用域>嵌套作用域(闭包)>全局作用域;

位置参数:

  定义了位置参数,则传参时是不可缺少的,并且顺序对应;

默认参数:

  创建函数时,可以直接为参数指定默认的数值,默认参数必须指向不可变对象;

可变参数:

  用*定义可变参数,可变参数可以传入0个或任意个参数,这些参数被调用时会自动封装为一个tuple;如果有一个要被传入的参数L是list或tuple,可以*L形式传入;

def f(*args):
    pass

f(1,a,True)
L=[1,2,3,4]
f(*L)

关键字参数:

  用**定义关键字参数,关键字参数可以传入0个或任意个带有参数名的参数,参数会被封装为一个dict,如果有一个要被传入的参数D时dict,可以**D形式传入;

def f(**kw):
    name=name
    age=age

f(name=‘‘alice,age=18)
D={"name":"alice","age":18}
f(**D)

命名关键字参数:

  在参数前以*标记,如果前面有可变参数则可省略*;

def f(*,name):
    pass

def f(*args,name):  //*args为可变参数
    pass

组合参数:参数为固定顺序,(位置参数,默认参数,可变参数,命名关键字参数,关键字参数)

递归函数:

  函数调用了自己本身就为递归,大量的递归会产生栈溢出,尾递归可以解决栈溢出,但python还是会溢出;

闭包:

  就是函数里面又定义了一个函数,子函数可以调用父函数中的参数、变量;储存其所在作用域的函数;



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

scrapy主动退出爬虫的代码片段(python3)

scrapy按顺序启动多个爬虫代码片段(python3)

Python3 函数 一

python基础-函数--python3

python3 函数function

Python3基础——函数