zoukankan      html  css  js  c++  java
  • 使用locals()获得类,进行分发 分类: python 小练习 divide into python python基础学习 2014-02-21 14:51 217人阅读 评论(0) 收藏

    参考dive into python P142

    #coding:utf-8

    '''
    locals()字典接收全局的类名称,从而获得类,然后实例化该类,调用实例的方法
    '''
    #定义类 myclass
    class myclass:
        def __init__(self):
            self.name = "sam"
        def report(self):
            print self.name

    #定义类 myroom
    class myroom:
        def __init__(self):
            self.room="Home"
        def report(self):
            print self.room

    #对类进行分发
    def getclass(classname):
        print "Locals:",globals()
        #获取类名,保存在myclass变量中
        myclass= globals()[classname]
        #得到类的实例
        myinstance = myclass()
        #调用实例的report方法
        myinstance.report()


    if __name__ == '__main__':
        for i in ["class","room"]:
            classname ="my"+i
            getclass(classname)


    或:

    #对类进行分发
    def getclass():

        #获得类
        classes = [classmodel for classkey,classmodel in globals().items() if classkey.startswith("my")]
        print classes
        for myclass in classes:

           # 对类进行实例化

            cc=myclass()
            cc.report()

    if __name__ == '__main__':
        getclass()

    #结果:

    [<class __main__.myclass at 0x044E84C8>, <class __main__.myroom at 0x0452A260>]
    sam
    Home

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

  • 相关阅读:
    【转】论创新工场、职业发展、offer如何比较选择、移动互联网
    哎哟,我的.NET呀
    大数据hadoop入门学习之集群环境搭建集合
    【转】ChainMapper 实例理解二
    win live
    【转】ChainMapper 实例理解一
    【转】Hbase shell 常用命令
    【转】eclipse 安装插件
    windows电脑命令行关机重启
    Linux常用监控命令
  • 原文地址:https://www.cnblogs.com/think1988/p/4627935.html
Copyright © 2011-2022 走看看