Python: 设计模式 之 工厂模式例(2)(神奇的Python)

#!/usr/bin/env python

#coding=utf-8

# 

# 工厂模式第二例(神奇的Python)

# 版权所有 2014 yao_yu (http://blog.csdn.net/yao_yu_126)

# 本代码以MIT许可协议发布

# 2014-04-22

#   在上一例中, 我使用了ObjectFactory.

#   实际上因为Python的动态特性, 可以直接使用 eval(类名字符串) 的方式达到相应的目的

# 



class Cube(object):

    pass



class Cuboid(object):

    pass

    

class Cylinder(object):

    pass



class Sphere(object):

    pass



if __name__ == '__main__':

    def main():

        for klass in (Cube, Cuboid, Cylinder, Sphere):

            klass = eval(klass.__name__)

            obj = klass()

            print(obj.__class__.__name__)

    

    main()

输出结果

Cube
Cuboid
Cylinder
Sphere

你可能感兴趣的:(python)