AT.info ПОСИДЕЛКИ  vKontakte   facebook группа  
метакласс

Формирование объектов на лету. Реализация на python

Выполняю очередную задачу по автоматизации решил немного упростить себе жизнь за счет формирования объектов на лету с помощью метаклассов 

'''
Created on Nov 20, 2010
@author: polusok
'''
pageClass = "LoginPage"
pageBaseClass = "Page"
elementClass = "Ok"
elementBaseClass = "Button"

class Page(object):
    def getUrl(self):
        return "http://url"

class Button(object):
    def click(self, xpath):
        print "Click is triggered on xpath="+xpath

page = eval("type(pageClass, (%(p)s,), {})()" % {'p':pageBaseClass})
page.ok = eval("type(elementClass, (%(b)s,), {})()" % {'b':elementBaseClass})

if __name__ == '__main__':
    print page.getUrl()
    page.ok.click("//xpath[condition]")

RSS-материал