您的位置:首页 > 编程语言 > Python开发

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

2014-02-21 14:51 1126 查看
参考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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐