zoukankan      html  css  js  c++  java
  • 学习python -- 第012天 函数(一)

    函数的定义

    函数的参数传递

    函数参数调用时的内存使用

    1 '''
    2 在函数调用过程中,进行参数的传递
    3 
    4 如果是不可变对象,在函数体的修改不会影响实参的值arg1的修改为100,不会影响n1的值
    5 
    6 如果是可变对象,在函数体的的修改会影响到实参的值arg2的修改,append(10),会影响到n2的值
    7 
    8 参数的变不变化取决于对象的类型
    9 '''

    函数返回值

    函数的返回值
    (1)如果函数没有返回值【函数执行完毕之后,不需要给调用处提供数据】return可以省略不写
    (2)函数的返回值,如果是1个,直接返回类型
    (3)函数的返回值,如果是多个,返回的结果为元组

    函数的参数定义 

    默认值参数

    个数可变的参数

    有两种

     1 #
     2 # @author:浊浪
     3 # @version:0.1
     4 # @time: 2021/4/7 9:14
     5 # 
     6 
     7 
     8 def fun(*args):
     9     print(args)
    10 
    11 fun(10)
    12 fun(20,30,40)  # 元组形式
    13 
    14 def fun1(**args):
    15     print(args)
    16 
    17 # fun1(20)  # 报错
    18 fun1(a = 1)
    19 fun1(a = 1, b = 2)  # 字典形式
    20 
    21 '''
    22 def fun2(*args,*a):
    23     pass
    24 以上代码,程序会报错,个数可变的位置参数,只能是1个
    25 
    26 def fun2(**args,**args):
    27     pass
    28 以上代码,程序会报错,个数可变的关键字参数,只能是1个
    29 '''
    30 
    31 def fun2(*args1, **args2):
    32     pass
    33 
    34 '''
    35 ’def fun3(**args1,*arg2):
    36     pass #
    37 以上代码不能执行
    38 在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参,
    39 要求,个数可变的位置形参,放在个数可变的关键字形参之前
    40 '''

    参数总结

     1 #
     2 # @author:浊浪
     3 # @version:0.1
     4 # @time: 2021/4/7 9:25
     5 # 
     6 
     7 def fun(a, b, c):
     8     print('a=', a)
     9     print('b=', b)
    10     print('c=', c)
    11 
    12 fun(10,20,30)  # 位置传参
    13 lst = [100,200,300]
    14 fun(*lst)  # 在函数调用时,将列表中的每个元素都转换为位置实参传入
    15 
    16 fun(a=10,b=20,c=30) # 关键字实参
    17 dit = {'a':111,'b':222,'c':333}
    18 fun(**dit)  # 在函数调用时,将字典中的键值对都转换为关键字实参传入
    19 fun(*dit) # 这里输出会变成 a , b, c
    20 
    21 
    22 def fun4(a,b,*,c,d):#从*之后的参数,在函数调用时,只能采用关键字参数传递
    23     print('a=', a)
    24     print('b=', b)
    25     print('c=', c)
    26     print('d=', d)
    27 # 调用fun4函数
    28 #fun4(10,20,30,40) #位置实参传递
    29 fun4(a=10, b=20, c=30, d=40)  #关键字实参传递#
    30 fun4(10, 20, c=30, d=40)#前两个参数,采用的是位置实参传递,而c,d采用的是关键字实参传递
    31 '''需求,c,d只能采用关键字实参传递'''

     上述顺序都可以

    认清现实,放弃幻想。 细节决定成败,心态放好,认真学习与工作。
  • 相关阅读:
    男孩的眼泪
    清冷
    Java随笔
    Java随笔
    skip a transaction in goldengate(跳过一个事务OGG)
    Oracle性能问题一般排查方法
    Oracle GoldenGate(ogg)安装经验大汇总,采坑总结,绝对干货!
    ORACLE 11G 性能诊断优化之ASH实战分析详解
    Oracle SQL性能优化40条 | 收藏了!
    GoldenGate OGG ORACLE数据复制实施方案
  • 原文地址:https://www.cnblogs.com/jyf2018/p/14626330.html
Copyright © 2011-2022 走看看