类的组合

Posted amber-liu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的组合相关的知识,希望对你有一定的参考价值。

class UserInfo(object):
    pass
class Department(object):
    pass
class StarkConfig(object):
    def __init__(self,num):
        self.num = num
    def changelist(self,request):
        print(self.num,request)
    def run(self):
        self.changelist(999)
class RoleConfig(StarkConfig):
    def changelist(self,request):
        print(666,self.num)
class AdminSite(object):
    def __init__(self):
        self._registry = {}
    def register(self,k,v):
        self._registry[k] = v(k)    #增加字典

site = AdminSite()
site.register(UserInfo,StarkConfig)  
#字典的kye是Userinfo,value是Stakconfig(Userinfo)这个对象,self是Starkconfig类的对象, 封装的值num=Userinfo这个类 site.register(Department,RoleConfig)  
#
字典的kye是Department,value是Roleconfig(Deparment)这个对象,self是Roleconfig这个类的对象, 封装的值num=Department这个类
print(len(site._registry)) # 3   #字典的长度是3

for k,row in site._registry.items():
  row.run()            #执行value这个对象的run方法








以上是关于类的组合的主要内容,如果未能解决你的问题,请参考以下文章

如何组合绑定片段而不将它们包装在 XML 文字中

48个值得掌握的JavaScript代码片段(上)

C++类的组合和聚合

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!(转载)

片段组合在 Relay 中是如何工作的?

类的组合