使用Python中的字典模拟类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Python中的字典模拟类相关的知识,希望对你有一定的参考价值。
使用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中的字典模拟类的主要内容,如果未能解决你的问题,请参考以下文章