python函数的面向对象——面向对象设计
通过几个函数式编号演进,理解面向对象设计
def01.py
1 dog1 = { 2 'name':'元昊', 3 'gender':'母', 4 'type':'藏獒' 5 } 6 dog2 = { 7 'name':'李李', 8 'gender':'公', 9 'type':'腊肠' 10 } 11 12 def jiao(dog): 13 print('一条狗[%s],汪汪'%dog['name']) 14 15 def yaoren(dog): 16 print('一条狗[%s]正在咬人'%dog['type']) 17 18 jiao(dog1) 19 yaoren(dog1) 20 yaoren(dog2)
def02.py
6 7 def dog(): 8 def jiao(dog): 9 print('一条狗[%s],汪汪'%dog['name']) 10 11 def yaoren(dog): 12 print('一条狗[%s]正在咬人'%dog['type']) 13 14 dog1 = { 15 'name': '元昊', 16 'gender': '母', 17 'type': '藏獒', 18 'jiao':jiao, 19 'yaoren':yaoren 20 } 21 return dog1 22 23 d1 = dog() 24 d1['jiao'](d1)
def03.py
6 7 def dog(name,gender,type): 8 def jiao(dog): 9 print('一条狗[%s],汪汪'%dog['name']) 10 11 def yaoren(dog): 12 print('一条狗[%s]正在咬人'%dog['type']) 13 14 dog1 = { 15 'name': name, 16 'gender': gender, 17 'type': type, 18 'jiao':jiao,#内部函数 19 'yaoren':yaoren#内部函数 20 } 21 return dog1#因为作用域的问题,所以一定要用内部的return 返回jiao,yaoren的函数,才能被外部调用 22 23 d1 = dog('张明','母','腊肠') 24 d1['jiao'](d1)#引入返回的那个数组d1 ,
def04.py
6 7 def dog(name,gender,type): 8 def jiao(dog): 9 print('一条狗[%s],汪汪'%dog['name']) 10 11 def yaoren(dog): 12 print('一条狗[%s]正在咬人'%dog['type']) 13 14 def init(name,gender,type): 15 dog1 = { 16 'name': name, 17 'gender': gender, 18 'type': type, 19 'jiao':jiao,#内部函数 20 'yaoren':yaoren#内部函数 21 } 22 return dog1 23 24 return init(name,gender,type) 25 26 d1 = dog('张明','母','腊肠')
26 print(d1['name'],d1['gender'])
27 d1['jiao'](d1)#引入返回的那个数组d1 ,
# 那么一个函数,
# 就是给定不同属性,设置属性到它内部,
# 并且它内部的函数使用了这些属性,完成了新的动作,
# 通过返回方法至一个字典当中,让外部调用这个方法(属性和方法都需要让外部去访问,在字典类型当中来讲,是平等的),
# 即完成了所谓的【面向对象】
# 对象在不描述之前什么都不是。
# 对象就是需要描述它的动作和特征,才能去定义它。比如:人,长什么样,能做什么;灯泡,是什么样,能做什么。
# 类是抽象的,只有属性和方法。 dog()函数就是
# 但对象是经过动作和特征的定义的。d1 定义后,就是一条狗了
# 这就是面向对象设计
类就像模板,定义后就是一个对象了。
由 类-----产生-----对象的过程叫做实例化(实例=对象)
在python当中,没有要求你一定要写面向对象的代码。用面向对象的语言,和一个程序的设计是面对对象的,两者无任何关系。
你写的程序是不是面向对象的,和你用的语言是不是面向对象的无关系!面向对象设计,只不过是函数/过程式编程的演进。关键在于面向对象的设计思路。
转载于:https://www.cnblogs.com/ekuj/p/8472392.html
python函数的面向对象——面向对象设计相关推荐
- Python函数和面向对象,小白看了都说好
Python函数和面向对象,小白看了都说好 python除了使用内置函数以外,还可以自定义函数.我们为什么要定义和使用函数呢? 下面我举个例子,比如我想求10的阶乘 # 求10的阶乘 m = 1 fo ...
- Python Day 21 面向对象 (面向对象的三大特性(二)继承,多态,封装,几个装饰器函数)...
Python Day 21 面向对象 (面向对象的三大特性(二)继承,多态,封装,几个装饰器函数) https://mubu.com/doc/1AqL_M0IbW 继承之钻石继承 多态 封装 几个装饰 ...
- Python(函数与面向对象)
Python(函数与面向对象) @(Knowledge)[Python, Auspice Vinson] 文章目录 Python(函数与面向对象) @[toc] 函数(function) 定义函数 调 ...
- 【Python学习笔记】面向对象三大特性
2019独角兽企业重金招聘Python工程师标准>>> ★面向对象:封装.继承和多态是面向对象的三大特点★ 面向对象编程简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元 ...
- python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...
面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...
- Python学习笔记:面向对象高级编程(上)
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:面向对象编程(1)
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Dave Python 练习十五 -- 面向对象编程
#encoding=utf-8 ### *************** 面向对象编程 ******************** #*********** Part 1: 面向对象编程 ******** ...
- 重拾面向对象软件设计
简介:从上个世纪五十年代冯·诺依曼创造第一台计算机开始,一直到现在只有短短70年时间,从第一门计算机语言FORTRAN,到现在我们常用的C++,JAVA,PYTHON等,计算机语言的演进速度远超我们所 ...
- Python第十七课(面向对象基础)
Python第17课(面向对象基础) >>>思维导图>>>中二青年 面向对象编程思想OOP 什么是面向对象 面向对象是一种编程思想,是前辈们总结出的经验,指导 ...
最新文章
- activiti部署、执行,完成简单示例
- 解决“SCRIPT257: 由于出现错误 80020101 而导致此项操作无法完成。 ”
- android getitem,android – ItemDecoration重写getItemOffsets()和动画
- C++阶段01笔记04【程序流程结构(选择结构、循环结构、跳转语句)】
- 互联网晚报 | 11月20日 星期六 | 阿里云单季营收首次超200亿;淘特年度活跃用户超2.4亿;首届中国网络文明大会在京召开...
- UCSB微软提出VIOLET,用Masked Visual-token Modeling进行端到端的视频语言学习!性能SOTA...
- python安装wx模板_windows下wxPython开发环境安装与配置方法
- 查看mysql创建 数据库_Mysql创建数据库和查看数据库
- 蓝桥杯 ADV-13 算法提高 最小乘积(提高型)
- 用HTML+CSS做员工信息登记表
- c语言给字母加密,C语言文字简单加密程序的实现
- 护眼色RGB值和HSV值
- YUV_420_888数据裁剪
- 2020网络安全NISP一级(模拟题七)
- JPG转换成PDF转换器使用说明
- crm客户管理系统如何助力企业销售管理
- android 呼叫 volte 电话方法
- python(28): 连接oracle环境离线安装及报错解决87,193
- 简历被肆意贩卖,个人信息安全何在?
- 黑马程序员 网络编程1