http://docs.python.org/library/functions.html#type
This is a bit tricky for Google, but you can find python type(name, bases, dict) function examplesto get:
http://www.voidspace.org.uk/python/articles/metaclasses.shtml
, :
:
def __init__(self, x):
self.x = x
def printX(self):
print self.x
Test = type('Test', (object,), {'__init__': __init__, 'printX': printX})
class Test(object):
def __init__(self, x):
self.x = x
def printX(self):
print self.x
" ", . - ( , ). , IDL. : http://effbot.org/pyfaq/how-do-you-make-a-higher-order-function-in-python.htm
, , IDL ( IDL), - , :
def makeMethod(idlCode):
syntax = MyIDL.parse(idlCode)
def newMethod(*args, **kw):
if syntax.statementType == MyIDL.IF_STATEMENT:
if secureLookup(mySyntaxTree.IF):
return secureLookup(args[0])
else:
return secureLookup(args[1])
...
return (syntax.methodName, newMethod)
, IDL * args ** kw, .
:
class DynamicIdlClass(object):
...
for idlObject in idlCode:
methods = dict(makeMethod(clause) for clause in idlObject.clauses})
methods['__init__'] = makeInitMethod(idlObject.initClause)
idlObject = type('Test', (DynamicIdlClass,), methods)
yield idlObject