24类和对象---使用字典实现

参考Python开发之路

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)
复制代码

 

posted @   cheng4632  阅读(71)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 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】
点击右上角即可分享
微信分享提示