python学习-60 面向对象设计
面向对象设计
1.三大编程范式
--面向过程编程
--函数式编程
--面向对象编程
2.编程进化论
--编程最开始就是无组织无结构,从简单控制流中按步写指令
--从上述的指令中提取重复的代码快或逻辑,组织到一起,便实现了代码重用,且代码由无结构走向了结构化,创建程序的过程变得更具逻辑性
--我们定义函数都是独立于函数外定义变量,然后在作为参数传递给函数,这意味着:数据与动作是分离的
--如果我们把数据和动作内嵌到一个结构里面,那么我们就有了一个‘对象系统’
3.定义
---类:把一类事物的相同的特征和动作整合到一起就是类
类是一个抽象的概念
---对象:就是基于类而创建的一个具体的事物(具体存在的)
特征和动作整合到一起
例如:
学校类:
特征:名称,地址,类型
动作:考试,招生
def school(name,address,type):
def init(name,address,type):
school = {
'name': name,
'address': address,
'type': type,
'kaoshi': kaoshi
}
return school
def kaoshi(school):
print('test') return init(name,address,type)
sl = school('qinghua','beijing','good')
print(sl)
print(sl['name']) ss = school('beida','bj','good')
print(ss['address'])
ss['kaoshi'](ss)
运行结果:
{'name': 'qinghua', 'address': 'beijing', 'type': 'good', 'kaoshi': <function school.<locals>.kaoshi at 0x7f669be32f28>}
qinghua
bj
test
Process finished with exit code 0
---类与对象的关系:对象都是由类产生的
---实例化:由类生产对象的过程叫实例化
python学习-60 面向对象设计的更多相关文章
- python学习笔记-面向对象设计
前言 1.三大编程范式: 面向过程编程 函数式编程 面向对象编程 2.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起,便实现 ...
- Python学习之==>面向对象编程(二)
一.类的特殊成员 我们在Python学习之==>面向对象编程(一)中已经介绍过了构造方法和析构方法,构造方法是在实例化时自动执行的方法,而析构方法是在实例被销毁的时候被执行,Python类成员中 ...
- python学习总结(面向对象进阶)
-------------------类属性和实例属性关系------------------- 1.类属性和实例属性关系 1.实例属性 实例对象独有的属性 2.类属性 ...
- 从0开始的Python学习014面向对象编程
简介 到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程.还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向对象的编程. 类和对象是面向对象 ...
- python学习 day23 面向对象三大特性之继承
### 面向对象三大特性值继承#### 1.什么是继承 继承是一种关系,必须存在两个对象才可能产生这种关系,在现实生活中的继承,王思聪可以继承王健林的财产 被继承的成为父,继承的一方成为子 在程序中, ...
- Python学习之面向对象进阶
面向对象进阶当然是要谈谈面向对象的三大特性:封装.继承.多态 @property装饰器 python虽然不建议把属性和方法都设为私有的,但是完全暴露给外界也不好,这样,我们给属性赋值的有效性九无法保证 ...
- Python学习一(面向对象和函数式编程)
学习了一周的Python,虽然一本书还没看完但是也收获颇多,作为一个老码农竟然想起了曾经荒废好久的园子,写点东西当做是学习笔记吧 对Python的语法看的七七八八了,比较让我关注的还是他编程的思想,那 ...
- Python学习-day6 面向对象概念
开始学习面向对象,可以说之前的学习和编程思路都是面向过程的,从上到下,一步一步走完. 如果说一个简单的需求,用面向过程实现起来相对容易,但是如果在日常生产,面向对象就可以发挥出他的优势了. 程序的可扩 ...
- python学习-64 面向对象三大特性----继承1
面向对象三大特性 1.三大特性? 继承,多态,封装 2.什么是继承? 类的继承和现实生活中的父与子,继承关系是一样的,父类为基类. python中的类继承分为:单继承和多继承 3.举例说明 class ...
随机推荐
- 利用JDK方式和GuavaAPI方式实现观察者模式
1.JDK方法实现案例需求: 去餐厅吃饭有时候需要排队,进行排队叫号.假如所有等待的人都是观察者,叫号系统就是一个被监听的主题对象.当叫号系统发出叫号通知后,所有等待的人,都会收到通知,然后检查自己的 ...
- Spring boot MyBatis基本操作
XML 配置方式 目录结构 数据库信息: 数据库student -> 表名 custom_user -> 主键-> custom_id ,其他字段 cusotm_name,cust ...
- Leet Code 2.两数相加
2.两数相加 题目描述 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字.如果,我们将这两个数相加起来,则会返回一个新的链表来表 ...
- JPA 原生SQ查询
参考文章 https://blog.csdn.net/coding_1994/article/details/84575943 https://blog.csdn.net/m0_37776094/ar ...
- 树莓派 pip 手动安装 和使用阿里云源
在 /etc/pip.conf 添加如下内容,启用源 [global] extra-index-url=https://www.piwheels.org/simple 下载后 pip install ...
- Java Hessian实践
Hessian是基于HTTP的轻量级远程服务解决方案,Hessian向RMI一样,使用二进制进行客户端和服务端的交互.但是与其它二进制远程调用技术(例如RMI)不同的是,它的二进制消息可以移植到其它非 ...
- Spring’s RestTemplate
Spring’s RestTemplate /** * After the word document is generated in memory we can upload it to the s ...
- mysql批量更新update中的锁表机制
mysql的行锁是通过索引加载的,即行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁. CREATE TABLE SIMPLE_USER( I ...
- Java static静态关键字 有啥用
#static有啥用 在Java语言中,static表示“静态”的意思,使用场景可以用来修饰成员变量和成员方法,当然也可以是静态代码块.static的主要作用在于创建独立于具体对象的域变量或者方法. ...
- 【DataBase】H2 DateBase与项目集成
本例介绍H2与web项目的集成 项目启动H2数据库 1.新建Maven Web项目,参考:[Maven]Eclipse 使用Maven创建Java Web项目 2.引入h2的jar包依赖 <de ...