zoukankan      html  css  js  c++  java
  • 多态 分发 分类: python 小练习 divide into python 2013-11-05 19:11 394人阅读 评论(0) 收藏

    #coding:utf-8
    
    def output_xml(name):
        print 'XML:%s' % name
    
    def output_html(name):
        print 'HTML:%s' % name
    
    def output_doc(name):
        print 'DOC:%s' % name
    
    
    def putdoc(types,name):
        print types,type(types)
        print name,type(name)
    
        eval('output_%s("%s")' % (types,str(name)))
    
    putdoc('doc',"sam")


    实例二:

    有两个文件如下:

    myoutformat.py #定义输出的文件格式

    #coding:utf-8
    
    class outputForm(object):
    
        def output_html(self,data):
    
            print 'html:',data
    
        def output_xml(self,data):
            print 'xml:',data
    
        def output_text(self,data):
            print 'text:',data
    
    if __name__=="__main__":
        pass
    

    myout.py #调用输出文件格式模块,输出文件

    #coding:utf-8
    
    import myoutformat
    
    def f(inst,form,data):
    
        #inst.output_text 是默认的方法参数,返回函数(或者:getattr(inst,'output_text')),如果此处是个字符串,则返回该字符串。此处应该是函数名称,返回函数
        fun=getattr(inst,"output_%s" % form,inst.output_text)
        #调用函数fun
        fun(data)
    
    if __name__ == '__main__':
        a=myoutformat.outputForm()
        f(a,"html",'abc')
        f(a,"xml",'abc')
        f(a,"text",'abc')
        f(a,"NAME",'abc')


    结果:

    html: abc
    xml: abc
    text: abc
    text: abc


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    HDU 6106 Classes【水题】
    HDU 6106 Classes【水题】
    ACM常用解题技巧方法
    ACM常用解题技巧方法
    程序员语录
    数据库设计的三大范式
    IDEA中Java代码存入DB中为乱码
    IDEA中如何添加jar包
    Java的Protected
    Hibernate JPA 如何使用SQL文直接查询
  • 原文地址:https://www.cnblogs.com/think1988/p/4628029.html
Copyright © 2011-2022 走看看