python 适配器

Posted 年轻在奔跑

tags:

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

什么是适配器?就相当手机的转换插头一样,让usb接口换成三脚插。在python里就是,让不同的类拥有同样的方法可以调用。

先看代码

class A(object):  
    def __init__(self):
        self.s=‘‘
    def aa(self,a):
        self.s = a
        print self.s
class B(object): def __init__(self): self.s=6 def bb(self,a): self.s = a+1 print self.s
class Adapt(object): def __init__(self,func): self.__dict__.update(func)
a
= A() b = B() c = Adapt(dict(aa=b.bb,aaa=a.aa)) a.aa(4) c.aa(4) c.aaa(4) b.bb(4)
输出:
4
5
4
5

  适配器的主要实现是self.__dict__.update(func),通过此方法来更新Adapt类的属性,参数func是以字典形式传入。c = Adapt(dict(aa=b.bb,aaa=a.aa))是将在Adapt类内新建aa属性,指向b.bb方法,aaa属性,指向a.aa方法,那么适配器Adapt就都有A类和B类的两个类的属性。一般来说,适配器是让两个不同类里的不同方法具有相同的方法名称,以方便代码结构上编写得更加方便、简洁。
举个例子:
  同样是上面的代码,假设我要运行a类的aa方法,b类的bb方法。b类的bb方法经过适配器后变成了c类的aa方法,所以就可以使用以下for循环来表示了。

func_list = [a,c]
for i in func_list:
    i.aa(4)

这只是两个方法,有必要用for循环吗?两个肯定没必要,但是如果10个呢?那就可以省下不当代码了。

 

 








以上是关于python 适配器的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段适配器启动活动

片段中ListView的android自定义适配器

片段内带有基本适配器的列表视图

片段中gridview的Android文本和图像适配器

将值从回收器适配器传递到android中的片段

如何使用 viewpager 和片段为我的 ListView 设置适配器