码迷,mamicode.com
首页 > 编程语言 > 详细

使用Python中的字典模拟类

时间:2017-11-25 17:26:37      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:一个   date   设置   value   ini   war   属性   col   update   

使用python中的字典来模拟类,下面是一个简单的例子

def newclass(**kwargs):
    """ 利用kwargs的update()方法来处理继承问题"""
    def set(key, value):
        kwargs[key] = value

    kwargs[set] = set
    return kwargs


def Mammal(**kwargs):
    """ 哺乳动物基类 """
    # 处理继承问题 相当于__init__()
    kwargs.update(newclass())

    # 哺乳动物有四条腿,相当于属性
    kwargs[legs] = 4

    # 相当于方法
    def say():
        return "没有这个方法"

    # 相当于方法
    def eat():
        return "没有这个方法"

    # 利用lambda
    kwargs[say] = say
    kwargs[eat] = eat

    return kwargs


def Cat(**kwargs):
    print("获得的参数", kwargs)

    kwargs.update(Mammal())

    def say():
        return "喵喵叫"

    kwargs[say] = say
    return kwargs


mammal = Mammal()

# 方法属性不再用 对象.方法 和 对象.属性 而是用[]代替。
print(mammal[say]())
print(mammal[eat]())
print(mammal[legs])

cat1 = Cat()
print(cat1[say]())
print(cat1[legs])
print(cat1[eat]())
# print("cat1 毛的颜色是:", cat1[‘红色‘])


d = {"color": "红色","legs":3}
# 设置属性
cat2 = Cat(**d)
# 调用方法
print(cat2[say]())
# 读取属性
print(cat2[legs])
# 调用方法
print(cat2[eat]())
print("毛的颜色是:", cat2[红色])

 

使用Python中的字典模拟类

标签:一个   date   设置   value   ini   war   属性   col   update   

原文地址:http://www.cnblogs.com/greatfish/p/6045021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!