python学习-60 面向对象设计
2024-08-22 15:02:17
面向对象设计
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
---类与对象的关系:对象都是由类产生的
---实例化:由类生产对象的过程叫实例化
最新文章
- 文本框如果不输入任何内容提交过后是一个空字符串还是null
- P和NP问题
- t-sql或mssql怎么用命令行导入数据脚本
- 基于C#实现的HOOK键盘钩子实例代码
- lnmp脚本
- UVa 1605 (构造) Building for UN
- 【IE6的疯狂之七】样式中文注释后引发失效
- OpenCart之联系我们contact us页面提交时邮件错误
- Asp.Net Core Authentication Middleware And Generate Token
- python-桶排序
- C++模板之Vector与STL初探
- java多线程(五)-访问共享资源以及加锁机制(synchronized,lock,voliate)
- Cisco交换机设置备份
- java基础 (二)之HashMap,HashTable,ConcurrentHashMap区别
- Git-TortoiseGit的安装和配置
- Chrome浏览器端调试JavaScript
- idea部署tomcat-404错误
- Java中goto和break、continue实现区别
- js字母大小写字母转换
- JS实现复制到剪贴板(兼容FF/Chrome/Safari所有浏览器)
热门文章
- 2019SDN上机第4次作业
- arcpy显示指定表的索引属性
- Are query string keys case sensitive?
- Guided Hacking DLL Injector 3.3
- Socket: java Socket的isConnected()、和isClosed()判断是否在线的问题(转)
- Quartz Configuration Reference
- hive分区表新增字段,已有分区显示为null
- leetcode 542. 01 Matrix 、663. Walls and Gates(lintcode) 、773. Sliding Puzzle 、803. Shortest Distance from All Buildings
- Python脚本实现Linux/MAC中Xmind Zen去水印等其他功能的过程(V0.1)
- 一个Redis实例适合存储不同应用程序的数据吗?