zoukankan      html  css  js  c++  java
  • Python按值传递参数和按引用传递参数

    Python按值传递参数和按引用传递参数:

    按值传递参数:

    使用一个变量的值(数字,字符串),放到实参的位置上

    注:传递过去的是变量的副本,无论副本在函数中怎么变,变量的值都不变

    传递常量:

    # 传递常量
    
    # 定义一个函数,输出 欢迎,接收到的参数 name
    def huanying(name):
        print("欢迎",name)
    huanying("小明")
    # 欢迎 小明
    
    
    
    # 定义一个求长方形面积的函数,要求具有返回值且参数为 height 和 width
    def area(height,width):
        return height * width
    
    mianji = area(5,4)
    print(mianji)
    # 20

    传递变量:

    # 传递变量
    
    # 定义一个函数,输出 欢迎,接收到的参数 name
    def huanying(name):
        print("欢迎",name)
    strs_name = "小明"
    huanying(strs_name)
    # 欢迎 小明
    
    
    
    # 定义一个求长方形面积的函数,要求具有返回值且参数为 height 和 width
    def area(height,width):
        return height * width
    height = 5
    width = 4
    
    mianji = area(height,width)
    print(mianji)
    # 20

    按引用传递:

    输出 列表、元组 和 集合所有元素的总和

    # 按引用传递
    
    lst = [1,2,3,4]
    tuple_1 = (4,5,7)
    se = {9,6,5,8}
    
    def add(args):
        '''将 args 中的元素总和输出'''
        print(sum(args))
    
    add(lst)
    # 10
    add(tuple_1)
    # 16
    add(se)
    # 28
    
    # 输出程序的注释
    print(add.__doc__)
    # 将 args 中的元素总和输出

    使用函数,将参数引用传递输出参数中的奇数

    # 按引用传递
    
    lst = [1,2,3,4]
    tuple_1 = (4,5,7)
    
    def jishu(args):
        '''将 args 中的奇数输出'''
        for i in range(len(args)):
            if args[i] % 2 == 1:
                print(args[i], end = " ")
        print()
    jishu(lst)
    # 1 3 
    jishu(tuple_1)
    # 5 7 
    
    # 输出程序的注释
    print(jishu.__doc__)
    # 将 args 中的奇数输出

     如果参数发生修改

      1.原参数如果为可变类型(列表、集合、字典)则也跟着修改

      2.原参数如果为不可变类型(数字、字符串、元组)则不发生改变

    示例:

    列表在函数中调用方法,列表本身发生改变

    def add_elem(args,string):
        '''将 lst_num 添加到 args 中'''
    
        args.append(string)
        # args += string
        # args.extend(string)
        # args.insert(len(args),string)
    
        return args
    
    lst = [1,2,3,4]
    
    string = "ABC"
    
    print(add_elem(lst,string))
    # [1, 2, 3, 4, 'A', 'B', 'C']
    print(lst)
    # [1, 2, 3, 4, 'ABC']

    在函数中,如果列表作为实参,形参发生修改时,列表值发生改变

    def add_elem(args,string):
        '''将 lst_num 添加到 args 中'''
    
        args[len(args)-1] = string
    
        return args
    
    lst = [1,2,3,4]
    
    string = "ABC"
    
    print(add_elem(lst,string))
    # [1, 2, 3, 'ABC']
    print(lst)
    # [1, 2, 3, 'ABC']

    2020-02-11

  • 相关阅读:
    php模拟数据请求
    vue指令
    vue指令问题
    属性(property)的特性(attribute)
    数据属性和访问器属性
    json数组
    js--基础(对象、数组、函数、if语句、while语句、do while语句、continue语句、break语句)
    typeof操作符--undefined与null
    js自定义格式时间输出当前时间,封装时间函数
    js 要求传入两个日期时间,返回两个日期时间之间,相差多少天多少小时多少分钟多少秒
  • 原文地址:https://www.cnblogs.com/hany-postq473111315/p/12294915.html
Copyright © 2011-2022 走看看