当前位置: 首页 > news >正文

9. 函数和匿名函数(一)

目录

1. 函数式编程范式

2. 函数基础

3. 默认参数(Default Argument Values)

4. 关键字参数(Keyword Arguments)

5. 可变参数(Variadic Arguments)

5.1 位置可变参数

5.2 关键字可变参数(Keyword Variadic Arguments)

5.3 通用参数

5.4 星号(*)的含义

6. 仅关键字参数(Keyword-Only Parameters)

7. 仅位置参数(Positional-Only Parameters)

位置参数VS关键字参数


1. 函数式编程范式

Python在函数中提供了惊人多样性,函数是第一等公民,因此它和其他对象没有任何区别。Python为函数式编程提供完全支持,也包含了lambda以及匿名函数这些概念。

首先了解下什么是函数式编程。

我们可能都使用过过程式编程或者面向对象编程。这两种编程范式都是命令式,即通过具体过程描述如何实现目标。

过程式编程围绕控制块比如if else ,while,for等进行组织代码,重点关注控制流。

面向对象编程范式围绕类和对象进行组织,重点关注状态,特别是这些对象的属性。

函数式编程式中,需要为每个步骤编写一个函数,每个函数接收一个输入并产生一个输出,并且只做一件事,不关心程序其余部分。而且函数式没有状态的,它们是不会存储任何信息。每次调用相同输入,函数都会生成相同输出。

函数式编程范式是围绕纯函数进行组织的。纯函数就是没有副作用且只做一件事。

在函数式编程中有几个非常重要的点或者规则:
1. 每个函数都应该只做一件事。
2. 一个函数的实现方式不应该影响程序其他部分的行为。
3. 要避免副作用!
4. 函数是无状态的,也不受外部状态影响,即相

http://www.dtcms.com/a/359175.html

相关文章:

  • enumerate 和for in搭配使用
  • 接雨水,leetCode热题100,C++实现
  • 【随笔】【Debian】【ArchLinux】基于Debian和ArchLinux的ISO镜像和虚拟机VM的系统镜像获取安装
  • C++的迭代器和指针的区别
  • 「日拱一码」066 深度学习——Transformer
  • Flutter MVVM+provider的基本示例
  • Qt中的锁和条件变量和信号量
  • Science:机器学习模型进行遗传变异外显率预测
  • 线段树相关算法题(5)
  • 【大语言模型 30】指令微调数据工程:高质量数据集构建
  • audioLDM模型代码阅读(二)——HiFi-GAN模型代码分析
  • 【光照】[光照模型]发展里程碑时间线
  • C++ 高并发内存池项目——无锁化设计、TLS 线程隔离与内存碎片优化
  • fork详解(附经典计算题)
  • 【系列07】端侧AI:构建与部署高效的本地化AI模型 第6章:知识蒸馏(Knowledge Distillation
  • mit6.824 2024spring Lab3A Raft
  • 简说DDPM
  • C语言---零碎语法知识补充(队列、函数指针、左移右移、任务标识符)
  • 机器人控制器开发(底层模块)——rk3588s 的 CAN 配置
  • 码农特供版《消费者权益保护法》逆向工程指北——附源码级注释与异常处理方案
  • 人工智能训练师复习题目实操题2.2.1 - 2.2.5
  • 手表--带屏幕音响-时间制切换12/24小时
  • PS学习笔记
  • 【15】VisionMaster入门到精通——--通信--TCP通信、UDP通信、串口通信、PLC通信、ModBus通信
  • 计算机算术7-浮点基础知识
  • 面经分享--小米Java一面
  • 青年教师发展(中科院软件所-田丰)
  • Dify 从入门到精通(第 65/100 篇):Dify 的自动化测试(进阶篇)
  • MCP与A2A的应用
  • LightGBM(Light Gradient Boosting Machine,轻量级梯度提升机)梳理总结