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

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

  • 相关阅读:
    写在之前
    Fedora Core 3安装杂记(三)
    Fedora Core 3安装杂记(一)
    Firefox 1.0真的挺好用的
    发现Google加了英文页面翻译功能(Beta)
    Fedora Core 3安装杂记(四)
    在FC3的日子里……
    ASP面向对象编程探讨及比较
    显卡千万不能买带风扇的……
    字符串(strcat)
  • 原文地址:https://www.cnblogs.com/think1988/p/4627935.html
Copyright © 2011-2022 走看看