zoukankan      html  css  js  c++  java
  • python函数-参数

    python函数-参数

    实验室

    # 演示形参是可变类型
    def register(name, hobby, hobby_list=[]):
        hobby_list.append(hobby)
        print(f"{name} prefer {hobby}'")
        print(f"{name} prefer {hobby_list}")
    
    
    register('nick', 'read')
    register('tank', 'zuipao')
    register('jason', 'piao')
    register('jason', 'piao',[12])
    

    nick prefer read'
    nick prefer ['read']
    tank prefer zuipao'
    tank prefer ['read', 'zuipao']
    jason prefer piao'
    jason prefer ['read', 'zuipao', 'piao']
    jason prefer piao'
    jason prefer [12, 'piao']

    如果针对可变的形参,调用的时候,不传值,那么他会一直指向同一个可变形参。当传入参数这种情况才会不出现。

    1.函数的参数

    位置形参

    def zx(x,y)
    	print(x)
    

    位置实参

    zx(1,2)
    

    默认实参

    def zx(x,y=10)
    

    注意:位置形参必须在默认实参前面
    关键字实参

    def zx(x,y):
    	print(f"{x},{y}")
    zx(y=1,x=1)
    

    1,1

    位置可以混乱

    可变长参数1(指传入的参数是不固定的)

    *args (元组接收)

    def zx(*args):
        print(args)
    zx(1,2,3,[12,2],{1:2,2:3})
    

    (1, 2, 3, [12, 2], {1: 2, 2: 3})

    *()打散

    def zx(x,y,z,c,*args):
        print(x,y,z,c,args)
    zx(1,*(1,2,32,12,3),6)
    

    1 1 2 32 (12, 3, 6)

    可变长参数2
    **kwargs (接收默认参数,封装成字典)

    (字典接收)

    def func(**kwargw):
        print(kwargw)
    func(a=5,b=6,c=7)
    

    {'a': 5, 'b': 6, 'c': 7}

    **{}打散

    def func(x, y, z,*args, **kwargs):
        print(x, y, z, kwargs)
    func(1, 3, 4,5,**{'a': 1, 'b': 2})
    

    1 3 4 {'a': 1, 'b': 2}

    python可变长参数的应用

    def index(name, age, sex):
        print(f"name: {name}, age: {age}, sex: {sex}")
    
    
    def wrapper(*args, **kwargs):
        print(f"args: {args}")
        print(f"kwargs: {kwargs}")
        index(*args, **kwargs)
    
    
    wrapper(name='nick', sex='male', age=19)
    

    args: ()
    kwargs: {'name': 'nick', 'sex': 'male', 'age': 19}
    name: nick, age: 19, sex: male

  • 相关阅读:
    金融风控100道面试题:传统银行开发转行互金top3公司并年薪40多万
    想学好矩阵?首先你要知道矩阵的历史!​
    什么是卷积?
    CNN的卷积核是单层的还是多层的?
    AI换脸之后“AI换声”来了!,一小时诈骗173万!
    介绍两个面试神器
    Github最火!程序员必须知道22大定律和法则
    SQL常用运算符
    SQL利用通配符进行模式查询
    隐藏DataList里面的某一行数据
  • 原文地址:https://www.cnblogs.com/zx125/p/11329090.html
Copyright © 2011-2022 走看看