Tuesday, 15 June 2010

python - What turns following to __builtin__? -



python - What turns following to __builtin__? -

i have next snippet , output

with metaclass:

def some(*args): homecoming type(args) __metaclass__ = class foo: = 'khkjh' print foo.__module__

output: __builtin__

without metaclass:

class foo: = 'khkjh' print foo.__module__

output: __main__

so,

what __builtin__?

why or how metaclass affecting it?

__builtin__ module provides built-in functions, exceptions, etc.

you're getting returned __module__ because metaclass you're providing turning foo tuple type:

>>> def (*args): ... homecoming type(args) # returns <type 'tuple'> ... >>> class hmm(object): ... __metaclass__ = ... >>> class foo(object): ... pass ... >>> print hmm <type 'tuple'> >>> print foo <class '__main__.foo'> >>> print tuple <type 'tuple'> >>> print tuple.__module__ __builtin__

as can see hmm type tuple. tuple type provided __builtin__ module, hence output you're seeing.

python metaclass built-in

No comments:

Post a Comment