• python函数传参和返回值注意事项


    函数传参

    • 空参数
      定义函数时括号里面没有形参,调用时不用传参。
    def func():
        print('null para.')
    
    # 调用
    func()
    
    • 位置传参
      规定形参的数量,调用时必须传递相同数量的形参。
    def func(a, b):
        print(a,b)
    
    # 调用
    func(11, 22)
    
    • 带默认参数的形参
      带默认值的参数位于非默认值参数的后面, 即位于位置参数,可变参数后面。
    def func(a, b, c=0):
        print(a, b, c)
    
    # 调用
    func(11, 22)
    
    • 传递元组型可变参数
    def f2(a, b, *args):
        print(a)
        print(b)
        print(args)
    
    rest =  f2(10, 20, 30, 40, 50)
    print(rest)
    
    执行结果:
    10
    20
    (30, 40, 50)
    
    
    • 元组传参传递的另一种方式:
    def f2(a, b, *args):
        print(a)
        print(b)
        print(args)
    
    my_tuple = (30, 40, 50)
    rest =  f2(10, 20, *my_tuple)
    print(rest)
    
    执行结果:
    10
    20
    (30, 40, 50)
    
    除位置参数10, 20以后的数据自动赋值给了元组形参*args
    如果只传10,20这2个参数给f2函数也不会报错,此时元组接收的参数为空。
    
    • 传递字典型可变参数
    def f2(a, b, **kwargs):
        print(a)
        print(b)
        print(kwargs)
    
    rest =  f2(10, 20, ka=558, kb='bbb')
    print(rest)
    
    执行结果:
    10
    20
    {'ka': 558, 'kb': 'bbb'}
    
    • 传递字典参数的另一种形式:
    def f2(a, b, **kwargs):
        print(a)
        print(b)
        print(kwargs)
    
    kw_para = {'ka': 558,' kb': 'bbb'}
    
    rest =  f2(10, 20, **kw_para)
    print(rest)
    
    执行结果:
    10
    20
    {'ka': 558, 'kb': 'bbb'}
    
    • 位置参数、元组参数、字典参数混合传参
    def f2(a, b, *args, **kwargs):
        print(a)
        print(b)
        print(args)
        print(kwargs)
    
    my_kw = {'ka': 558, 'kb': 'bbb'}
    my_tuple = (30, 40, 50)
    rest =  f2(10, 20, *my_tuple, **my_kw)
    print(rest)
    
    结果:
    10
    20
    (30, 40, 50)
    {'ka': 558, 'kb': 'bbb'}
    按位置参数、元组参数、字典参数的顺序定义函数和调用,位置顺序不能调换!
    除非有带默认参数的位置参数,此时带有默认参数的位置参数需要放到元组参数和字典参数之间。
    
    • 带有默认参数的位置参数、元组参数、字典参数混合传参
    def f2(a, *args, b=0, **kwargs):
        print(a)
        print(b)
        print(args)
        print(kwargs)
    
    my_kw = {'ka': 558, 'kb': 'bbb'}
    my_tuple = (30, 40, 50)
    rest =  f2(10, *my_tuple, **my_kw)
    print(rest)
    
    结果:
    10
    0
    (30, 40, 50)
    {'ka': 558, 'kb': 'bbb'}
    

    函数返回值

    • 函数执行完不出现return语句,或者return语句不返回值,此时调用者收到的返回值为None。
    • 可以返回一个元组。
    def func():
        return 1, 2, 3
    
    x, y, z = func()
    
    
    • 返回其他对象等。
  • 相关阅读:
    AI换脸必备知识:如何查看显卡型号以及显存大小!
    DeepFaceLab620稳定版使用过程详解!
    DeepFaceLab错误:DLL Load failed 找不到指定模块!
    DeepFaceLab进阶:H128,DF,SAE模型有何不同?哪个最好?
    J2EE与EJB
    Servlet与JSP
    Java网络编程详解
    Java多线程详解
    Java数据库操作
    Java多线程
  • 原文地址:https://www.cnblogs.com/bryant24/p/11439729.html
Copyright © 2020-2023  润新知