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

python语言day7 函数式编程 面向对象编程

Java 函数式编程_java函数式编程-CSDN博客

25.Java函数式编程-CSDN博客

 函数式编程:

           通过调用函数send_email(),完成业务需求。将具体的业务需求封装成一个函数这样的一种解决问题的思想称它为函数式编程。

            在java中本来没有函数的概念,因为使用java解决问题一定是通过创建类和对象,调用对象具有的方法来解决问题

            jdk1.8后也引入了函数式编程的概念:

                        具体是创建一个接口,实现这个接口抽象方法的类对象:

                                这个实现的类对象就是一个封装了函数体的盒子,不关心对象是谁,只要执行其中的函数就能解决问题。

                        要拆开这个装饰的盒子,jdk1.8提供了一种方式,Lambda表达式。

面向对象编程:

        创建一个类,实现_ _init_ _方法创建对象:

        和java一样,python也可以是面向对象编程:

                class关键字用于创建类;

                _ _ init _ _ 这种特殊的命名类似于已经定义好了的接口,python已经写好的接口调用,只要编写接口的实现,例如:

                        _ _str_ _: 实现该方法,类似java的toString(),

                print(user)会直接调用该函数。

        _ _repr_ _:实现该方法,repr(user)会调用该函数.  

        _ _add_ _ :实现该方法,user1+user2会调用该函数.

        这个过程有点像面向接口编程,python写了一半,我们实现另一半。  

           

class User:def __init__(self,name,password,adddress):self.name = nameself.password = passwordself.adddress = adddressdef send_email(self,goal,content):print(self.name,"向",goal,"发送消息",content)if __name__ == "__main__":obj = User("张三","123456","1831120378@qq.com")obj.send_email("2505206760@qq.com","你还欠我200块")

封装:

      对象就是对数据的一种封装。

继承:

            没有extends,只需要一个(),就能表示继承,python的语法写的很简洁,看起来很舒服。

  

多态:

        

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • android13顶部状态栏里面调节背光,不隐藏状态栏面板
  • CDD数据库文件制作(十一)——服务配置(0x19_DTC Code)
  • 【Qt开发】QSerialPort串口配置、发送、接收回调函数 多线程接收的串口类封装
  • 【python基础】—离线环境下,在linux中安装python包(以sqlalchemy为例)
  • SpringBoot获取不到Nacos配置信息报错,Nacos鉴权
  • 基于Python的上市公司年报数字化词频统计:深入解析与实战
  • 倒计时:可添加可删除的倒计时函数
  • 从零开始手写STL库:Map
  • C++:list类(迭代器)
  • Spring SSM框架--MVC
  • [数据集][目标检测]手钳检测数据集VOC+YOLO格式141张1类别
  • 一:《Python基础语法汇总》— 数据类型与输入输出
  • sql总结
  • C++入门——21特殊的类
  • PostgreSQL下载、安装(Windows 10/11 64位)详细教程【超详细,保姆级教程!!!】
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Java,console输出实时的转向GUI textbox
  • PHP变量
  • Promise初体验
  • ReactNativeweexDeviceOne对比
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • ucore操作系统实验笔记 - 重新理解中断
  • vagrant 添加本地 box 安装 laravel homestead
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 经典排序算法及其 Java 实现
  • 开源SQL-on-Hadoop系统一览
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • Spring Batch JSON 支持
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • # centos7下FFmpeg环境部署记录
  • #14vue3生成表单并跳转到外部地址的方式
  • #QT(串口助手-界面)
  • #微信小程序(布局、渲染层基础知识)
  • $forceUpdate()函数
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (C语言)二分查找 超详细
  • (day6) 319. 灯泡开关
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (超详细)语音信号处理之特征提取
  • (二)windows配置JDK环境
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一) springboot详细介绍
  • (一)Mocha源码阅读: 项目结构及命令行启动