Python 函数

1.函数特性

代码重用行;保持一致性;可扩展性

 

2.函数创建

2.1格式

def function_name():

    pass

 

2.2调用

function_name()

2.3命名规范

区分大小写;命名与变量命名相同;保留字不能使用

 

3.函数参数

3.1必备参数

按照先后的顺序传入参数

3.2关键字参数

在调用函数时指定    形参名称=值    的方式

3.3默认参数

在定义函数时指定  形参名称=值   的方式,调用时可以不传这个参数则值为默认,传入这个参数的话则使用传入参数的值

默认参数一定要放在不默认参数的后面

定义默认参数要牢记一点:默认参数必须指向不变对象!

如果默认参数不是不变对象,则参数会“记忆”上一次的参数值

3.4不定长参数

3.4.1 接收不命名参数

def function(*args):

     print(args)

    sum =0

    for i in args:

         sum+=1

function(1,2,3,.....)#不命名参数

 

3.4.2接收不命名参数+命名参数

def function_new(*args,**kwargs):

     print(args)

     print(kwargs)

 

调用时: funciton_new(1,2,3,flag='abc',flag_new='cnm')

如果传入列表,接收列表则: function_new(*[1,2,3])

如果传入字典,接收字典则: function_new(**{“name”:"Alex"})

 

不命名参数会将传进来的参数变成元组tuple,命名参数会将传进来的参数变成字典dict,两者混用时,不命名参数在左边。

3.4.3默认参数与不命名参数和命名参数混用时,应该放在第一位

3.4.4 命名关键字参数

和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符**后面的参数被视为命名关键字参数。

def person(name, age, *, city, job):
    print(name, age, city, job)

 

如果函数定义中已经有了一个不命名参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*

命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错

使用命名关键字参数时,要特别注意,如果没有不命名参数,就必须加一个*作为特殊分隔符。如果缺少*,Python解释器将无法识别位置参数和命名关键字参数

3.4.5 组合参数

在Python中定义函数,可以用必选参数、默认参数、不命名参数、命名参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、不命名参数、命名关键字参数和命名参数。

4.返回值

注意:函数里面没有返回,默认返回none

           如果函数返回多个对象,将多个对象封装成一个元组返回

           return 代表着函数的结束

 

5.作用域

函数里面的局部作用域不可以修改全局变量,想要修改全局变量需要关键字声明                   global  为全局变量

如果是函数嵌套外层函数定义,内层函数如果要修改变量的值需要关键字声明                     nonlocal 为上一层局部变量

变量查找顺序:作用域局部>外层作用域>当前模块中的全局>python内置作用域

只有模块、类和函数可以引入新作用域

 

posted on 2018-01-11 01:09  可爱的春哥  阅读(137)  评论(0)    收藏  举报

导航