python - How can I call the metaclass's __call__? -



python - How can I call the metaclass's __call__? -

given next illustration on instance of x class:

class x(): def __call__(self, incoming_list): print incoming_list x()([x x in range(10)])

how can obtain same output using __call__ magic method class instead of instance? example:

x([x x in range(10)])

calling directly, if passing __init__. but, before calls __call__ calls __new__ passes arguments __init__. how can access "metaclass __call__" ? possible?

just create easier understand, gives me same output there:

class x: def __call__(self, incoming_list): print incoming_list x().__call__([x x in range(10)])

i want this:

class x: def x.__call__(incoming_list): # syntax error print incoming_list x.__call__([x x in range(10)])

i think think complicated.

probably want like

class x: def __init__(self, incoming_list): self.data = incoming_list # maintain them later, if needed print incoming_list x([x x in range(10)])

everything without meta class, on definition of class.

if need meta class, can like

class mc(type): def __call__(self, *a, **k): super(mc, self).__call print a, k r = super(mc, self).__call__(*a, **k) print "r", r homecoming r class x(object): __metaclass__ = mc def __init__(self, x): print "init", x

using with

>>> x(1) (1,) {} init 1 r <__main__.x object @ 0x00000000022907b8> <__main__.x object @ 0x00000000022907b8>

shows meta-__call__ called, which, in turn, calls __init__.

but sure don't need , want __init__.

python class call metaclass

Comments

Popular posts from this blog

php - Android app custom user registration and login with cookie using facebook sdk -

django - Access session in user model .save() -

php - .htaccess Multiple Rewrite Rules / Prioritizing -