24类和对象---使用字典实现
1、不要简单的认为面向对象就是使用class A ,面向对象是一种编程思想,用函数也可以面向对象编程。
面向过程、面向对象、函数式编程只是不同的编程范式,本身没有好坏之分,看用的人了。Linux的内核就是用C语言写成的,能说差吗?
2、用函数进行面向对象编程例子
类就是一些函数的包,只是类支持继承,我们也可以把函数存储到字典中,但是没有必要,使用类是很自然的事情
dog1 = { 'name':'aa', 'gender':'公', 'type':'藏獒', } dog2 = { 'name':'cc', 'gender':'公', 'type':'藏獒', } person1 = { 'name':'mm', 'gender':'女', 'type':'人', } def run(dog): print('the {} run....'.format(dog['name'])) def eat(dog): print('the {} eat....'.format(dog['name'])) eat(dog1) eat(dog2) eat(person1) #----------把函数也封闭到字典里-------------------- def dog(): def run(dog): print('the {} run....'.format(dog['name'])) def eat(dog): print('the {} eat....'.format(dog['name'])) # 把函数也封装在字典里,但这时候又写死了 dog1 = { 'name':'aa', 'gender':'公', 'type':'藏獒', 'run':run, 'eat':eat, } return dog1 d1 = dog() d1['run'](d1) # ------------------------------------------------------ def dog(name,gender,type): def run(dog): print('the {} run....'.format(dog['name'])) def eat(dog): print('the {} eat....'.format(dog['name'])) dog1 = { 'name':name, 'gender':gender, 'type':type, 'run':run, 'eat':eat, } return dog1 #----------------定义init()用来初始化----------------------- def dog(name,gender,type): def run(dog): print('the {} run....'.format(dog['name'])) def eat(dog): print('the {} eat....'.format(dog['name'])) def init(name,gender,type): dog1 = { 'name':name, 'gender':gender, 'type':type, 'run':run, 'eat':eat, } return dog1 return init(name, gender, type) d1 = dog('aa','公','藏獒') d1['run'](d1) d2 = dog('bb','公','藏獒') d2['run'](d2)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】