首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3 函数

python3 函数

作者头像
py3study
发布2020-01-03 11:36:24
5690
发布2020-01-03 11:36:24
举报
文章被收录于专栏:python3python3
形式参数:
实际参数:固定数参数
默认参数:给参数一个默认值,赋予新值时覆盖默认值。
位置参数:sys.argv[XX]

代码名称、函数、变量不可以与系统默认参数、模块名字相同

if __name__ == '__main__':
__name__:
    在主动调用的时候返回__main__(意思就是主动调用这个函数)
    在被动调用的时候返回__foo__(像导入模块的时候,顺带到这个地方,并不是要执行它的时候返回foo)
    所以在if __name__ == '__main__':下面的代码是属于在主动调用的时候才执行。
    前向引用:
    def foo():
        print('in foo')
        bar()   #此时函数的内容并没有执行,当调用的时候才开始真正的执行函数

    #foo()  如果这个时候调用foo()函数的话,会报错,因为bar函数还没有生成
    def bar():
        print('in bar')

    foo()

内部函数/内嵌函数:
    def foo():
        print('in foo')
        def bar():
            print('in foo-bar')
        bar()

    foo()               
    #函数bar()只能在foo函数内部调用,foo函数结束bar则结束,类似于局部变量的意思

函数操作符:
    使用一对圆括号()调用函数,如果没有圆括号,只是对函数的引用
    任何输入的参数都必须放置在括号中
    调用:把函数执行一遍
    引用:把函数本身指向引用者
    >>> def func():
    ...     return 'hello wlrkd'
    ... 
    >>> a = func()
    >>> b = func
    >>> a
    'hello wlrkd'
    >>> b
    <function func at 0x7f90fc1afe18>
    >>> b()
    'hello wlrkd'

关键字参数:
    关键字参数的概念仅仅针对函数的调用
    这种理念是让调用者通过函数调用中的参数名字来区分参数
    这样规范允许参数缺失或者不按顺序
    def get_ingo(name, age):
        print('%s is %s years old' % (name, age))

    get_ingo('bob', 23)
    get_ingo(23, 'bob')
    get_ingo(age=23, name='bob')
    #get_ingo(age=23, 'bob')  #错误,关键字参数必须在后
    #def func(age=23, name):    #错误,定义函数时,有默认值的参数必须在后
    # get_ingo(23, name='bob')    #错误,name变量得到了多个值
    # get_ingo('bob', 23, 24)     #错误,调用函数时,实参个数要与形参个数相同
    get_ingo('bob', age=23)

参数组:
    python允许程序员执行一个没有显示定义参数的函数      
    相应的方法是通过一个把元组(非关键字参数)或字典(关键字参数)作为参数组传递给函数

    def get_args(*args):  #一个*号代表以元组形式接收参数
        print(args)

    def get_kwargs(**kwargs):   #两个*号代表以字典形式接收参数
        print(kwargs)

    def get_info(name, age):
        print('%s is %s years old' % (name, age))

    if __name__ == '__main__':
        get_args()
        get_args('abc')
        get_args(10, 20,30, 40)
        get_kwargs()
        get_kwargs(name='bob', age=25) 
        info = ['bob', 23]
        get_info(*info) #在实参传递的时候以一个*号,代表字符串字符串、元组、列表
        info_dict = {'name':'azj', 'age':25}
        get_info(**info_dict)   #两个*号代表的是字典的含义,将字典进行传递

        ()
        ('abc',)
        (10, 20, 30, 40)
        {}
        {'name': 'bob', 'age': 25}
        bob is 23 years old
        azj is 25 years old
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档