使用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
#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
相关文章推荐
- 使用文件进行优化 分类: python 小练习 divide into python python基础学习 2014-01-01 14:13 228人阅读 评论(0) 收藏
- if ...__name__使用技巧总结 分类: python基础学习 python Module python 2013-11-01 14:51 262人阅读 评论(0) 收藏
- python数据持久存储:pickle模块的基本使用 分类: python python基础学习 python 小练习 2013-06-17 14:41 209人阅读 评论(0) 收藏
- 使用os.popen/commands.getoutput查询指定端口号的服务 分类: python 小练习 open()文件读写 python基础学习 2013-09-17 17:49 798人阅读 评论(0) 收藏
- 删除列表元素时需注意的问题 分类: python基础学习 python 小练习 2013-10-09 14:02 293人阅读 评论(0) 收藏
- 猜数字 分类: python 小练习 python基础学习 2013-06-20 15:16 160人阅读 评论(0) 收藏
- Python中单/双下划线使用 分类: python python基础学习 2013-09-02 21:31 1764人阅读 评论(0) 收藏
- 使用set()求出列表交集 分类: python基础学习 2013-06-16 17:00 241人阅读 评论(0) 收藏
- python中文编码转换 分类: python基础学习 python 小练习 2013-10-11 17:22 331人阅读 评论(0) 收藏
- 文件操作注意事项 分类: python 小练习 python基础学习 open()文件读写 2013-12-03 11:05 532人阅读 评论(0) 收藏
- 依次读取文件中的一个字符 分类: python基础学习 python 小练习 2013-08-22 11:14 289人阅读 评论(0) 收藏
- 使用fileinput模块进行原地修改文件 分类: python 小练习 2013-08-13 16:47 618人阅读 评论(0) 收藏
- Python 使用 Xlrd/xlwt 操作 Excel 分类: python基础学习 2014-03-17 12:06 958人阅读 评论(0) 收藏
- 使用getattr() 分类: python基础学习 divide into python 2014-02-24 15:50 198人阅读 评论(0) 收藏
- 继承父类,调用父类中的方法 分类: python 小练习 python基础学习 2014-01-10 17:54 325人阅读 评论(0) 收藏
- 输出包含共同元素的变量值 分类: python 小练习 python基础学习 2014-03-11 13:55 188人阅读 评论(0) 收藏
- 使用类、类属性、对象属性 分类: python基础学习 2014-03-19 16:22 220人阅读 评论(0) 收藏
- 使用生成器返回fibs列表 分类: python Module python基础学习 2013-10-28 18:19 283人阅读 评论(0) 收藏
- 生成器介绍 分类: python 小练习 python基础学习 divide into python 2013-12-31 21:17 226人阅读 评论(0) 收藏
- 移除连续重复的字符串元素 分类: python 小练习 python基础学习 divide into python 2014-01-01 15:53 392人阅读 评论(0) 收藏