zoukankan      html  css  js  c++  java
  • 函数

     (1)

    >>> def add_args(arg1,arg2):
        print(arg1+arg2)
    
        
    >>> def run_someting_with_args(func,arg1,ag2):
        func(arg1,ag2)
    
    '''
    定义一个函数run_something_with_args,它带有三个参数:
    func---可以运行的函数
    arg1---func函数的第一个参数
    arg2---func函数的第二个参数
    '''    
    >>> run_something_with_args(add_args,5,9)
    14

    在函数run_something_with_args()内部,函数名add_args被赋值给参数func,5和9分别赋值给arg1和arg2。程序最后执行:
    add_args(5,9)

    可以在此用上*args(位置参数收集)和**kwargs(关键字参数收集)的技巧。备注:sum()函数,是python的一个内建函数用来计算(整数或者浮点数)参数的和

    >>> def sum_args(*args):
        return sum(args)
    
    >>> def run_with_positinoal_args(func,*args):
        retun func(*args)
        
    SyntaxError: invalid syntax
    >>> def run_with_positinoal_args(func,*args):
        return func(*args)
    
    >>> run_with_positinoal_args(sum_args,1,2,3,4)
    10
    >>> 

    (2)

    #传不可变对象实例
    def ChangeInt(a):
        print('修改前a的值:',a)
        a = 10
        print('修改后a的值:',a)
    b = 2
    ChangeInt(b)
    print(b)
    
    运行结果:
    修改前a的值: 2
    修改后a的值: 10
    
    分析:
    ChangeInt(b)把b的值复制给a,a未修改前a=b=同一内存地址;a=10重新修改后,a重新生成一个对象指针指向了10,但是b的指针还是指向的2,所以b的值为2而非10
    实例中有 int 对象 2,指向它的变量是 b,在传递给 ChangeInt 函数时,按传值的方式复制了变量 b,a 和 b 都指向了同一个 Int 对象,在 a=10 时,则新生成一个 int 值对象 10,并让 a 指向它。
  • 相关阅读:
    游标cursor
    SQL: EXISTS
    LeetCode Reverse Integer
    LeetCode Same Tree
    LeetCode Maximum Depth of Binary Tree
    LeetCode 3Sum Closest
    LeetCode Linked List Cycle
    LeetCode Best Time to Buy and Sell Stock II
    LeetCode Balanced Binary Tree
    LeetCode Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/bashliuhe/p/12610037.html
Copyright © 2011-2022 走看看