zoukankan      html  css  js  c++  java
  • 7-函数

    函数基础

    • 定义函数/声明函数
      • def f():
        • print('hello')
    • 调用函数
      • f()
    • 参数
      • def f2(x, y):
    • 函数的作用
      • 封装一个功能(一段代码)

    标准函数

    • return
      • 1.返回结果
      • 2.立刻退出函数
      • 3.默认返回None
    • return如果不接返回值,可以用来中止函数

    函数参数

    • 实参/形参
      • 实参:函数调用时括号中的参数
      • 形参:函数定义时括号中的参数
    • 参数类型
      • 位置参数/必需参数
      • 默认参数(定义时)
        • def f2(x, y=3):
      • 关键字参数(调用时)
        • def f3(x, y=3, z=4):
          • # z 是关键字参数,给关键字z传参
          • f3(10, z=30) # 10 3 30
      • 可变参数/不定长参数
        • *args: 可以接收任意多个(0~n)位置参数,得到的值是一个元组
          • def f4(x, y, args):
            • print(x, y, args)
        • kwargs:(keyword arguments)可以接收任意多个(0~n)关键字参数,得到的值是一个字典
          • def f5(x, y, kwargs):
            • print(x, y, kwargs)
        • 接收任意参数
          • def f7(*args, **kwargs):
            • print(args, kwargs)

    匿名函数lambda

    • f2 = lambda x: x*x
      • person_list.sort(key=lambda x: x['age'], reverse = True)

    值传递问题

    • 值类型:简单的赋值,没有关联

    • 引用类型:赋值的同时会有关联,深拷贝解决。

      • l1 = [1, 3 ,4 , 2]
      • l2 = l1
      • l2[0] = 100
      • print((l1, l2)) # ([100, 3, 4, 2], [100, 3, 4, 2])
    • 函数中参数:值类型和引用类型的区别

      • def f(n, m):  # n=a, m=b
            # pass  # 空函数
            n += 1
            m['age'] += 1
            print(n, m)
        a = 10
        b = {'age': 10}
        f(a, b)  # 11 {'age': 11}
        print(a, b)  # 10 {'age': 11}
        
  • 相关阅读:
    Java HttpClient使用小结
    【剑指offer】Q18:树的子结构
    poj3041-Asteroids , 二分图的最小顶点覆盖数 = 最大匹配数
    jquery.validate+jquery.form提交的三种方式
    "undefined reference to" 问题解决方法
    [Oracle]
    Effective_java之二:慎用重载函数
    C99规范
    迭代、递归替代循环
    1)Linux程序设计入门--基础知识
  • 原文地址:https://www.cnblogs.com/lotuslaw/p/14006843.html
Copyright © 2011-2022 走看看