欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

好好学python·函数

程序员文章站 2022-07-14 23:10:11
...

函数的定义

def 函数名([形参列表]):
    当前函数的具体功能的代码
    当前函数的具体功能的代码
    。。。。

函数的调用

函数名(实参列表[])

函数使用的规范

  • 函数只有在被调用时执行
  • 不能在函数定义前调用
  • 函数的调用不受次数影响
  • 函数的命名要遵守命名规范
  • 字母数字下划线,不能以数字开头
  • 严格区分大小写,不能使用关键字
  • 命名有意义且不使用中文
  • 函数名不能冲突

函数的参数

函数参数概念及分类

  • 函数参数:调用时需要传递的数据.
    . 形参: 函数定义时的参数
    . 实参: 函数调用时的参数
  • 函数调用时,形参和实参个数需要一一对应
  • 形参: 普通参数,默认参数,普通收集参数,命名关键字参数,关键字收集参数
  • 实参: 普通实参,关键字实参

普通参数

普通的参数,接收实参传递的值

def func(a)
# a即为普通参数

默认参数:

位于普通参数后面,具有默认值的参数

def func(a,b=1)
# b在普通参数a的后面,默认值为1

普通收集参数:

专门收集在函数调用时传递的多余的非关键字实参

def func(a,b=1,*args):
	print(a,b,args)
func(1,2,3,4,5,6)
#打印结果为1 2 (3,4,5,6)
#其中a=1,b=2,args=(3,4,5,6) 相当于接受了多余的非关键字形参,结果为元组

命名关键字参数

定义时在普通收集参数后的参数,调用时必须传入指定参数名才能调用

def func(a,b=1,*args,name)
	print(a,b,args,name)
func(1,2,3,4,5,6,name='1234567')
#输出结果 1 2 (3, 4, 5, 6) 1234567

关键字收集参数有

用于专门收集多余关键字实参,输出结果为字典

def func(a,b=1,*args,name,**kwargs):
	print(a,b,args,name,kwargs)
func(1,2,3,4,5,6,name='1234',age=18.school='HEBTU')
#输出结果为 1 2 (3, 4, 5, 6) 1234 {'age': 18, 'school': 'HEBTU'}

形参声明的位置顺序:

普通参数 -> 默认参数 ->普通收集参数 -> 命名关键字参数 -> 关键字收集参数

函数返回值

  • 返回值可有可无
  • 可以使用return 返回 任意内容或数据
  • 若没有return,默认返回None
  • return 意味着函数的结束,return之后的代码不在执行

变量作用域

变量分类

  • 全局变量:函数内外都可以使用
    ①在函数内使用global定义的变量
    ②在函数外定义,在函数内用global引用的变量

  • 局部变量:函数内定义的变量,只能在函数内使用

获取变量数据

  • globals() 获取全局数据
  • locals() 获取当前作用域的数据

注意事项

  • 在函数外定义的变量,函数可以访问,但是不能更改
  • 对于定义在函数外的列表和字典可以通过函数更改,其他不能更改,只能访问

函数作用域

def outer():
    print('this is outer function...')
    def inner():
        print('this is inner function...')
    inner() #在函数内定义的函数,称为局部函数,只能在函数内调用
outer()
#inner()#会报错

nonlocal

在内函数中使用外层函数的变量,需要使用 nonlocal 关键字引用


def outer():
    # 外函数的局部变量
    num = 10
    def inner():
        # nonlocal 关键字在局部函数中使用
        nonlocal num # 可以引用,但依然不能提升为全局变量
        num += 1
        print(num)
    inner()
outer()

关于函数的文档


def outer():
    '''
    这里是让你些当前函数的文档说明的。
    需要说明当前函数的作用,
    如果当前函数还有行参,那么也需要对行参进行一一说明
    name: 这个是一个name参数,有什么作用。。。
    age : 这个表示当前的一个年龄
    :return:  此处说明当前函数的返回值。。。
    '''

print(globals())#输出全局变量
print(__name__) # 获取当前脚本的文件名,
print(__doc__) # 获取当前脚本的说明文档
# print(outer.__doc__) # 获取当前函数的说明文档
'''
魔术变量
__name__  ==> 当前脚本作为主程序,值是 __main__,如果是当做模块,值是当前文件的名字
__doc__   ==> 当前脚本的文档说明 在当前脚本当中的第一个 三引号注释就是当前脚本的说明文档

'''


相关标签: Python python