__builtins__

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts

  • Ben Finney
    Guest replied
    Re: __builtins__

    LHB <loquehumaine@g mail.comwrites:
    Marc 'BlackJack' Rintsch a écrit :
    `__builtins__` is an implementation detail, and `__builtin__` is a name
    of a module you can import. You should not use `__builtins__` but import
    `__builtin__` and inspect that instead of `__builtins__`.
    Ok. Should I only see `__builtins__` as an access to builtin
    functions/exception/... ?
    No, if you want that access, explicitly 'import __builtin__' and
    access them that way. Ignore '__builtins__' altogether as an
    implementation detail. (This is difficult to adhere to because the
    names are confusingly similar; this is an acknowledged wart in current
    Python.)

    IIRC this behaviour will change in Python 3.0, where 'import
    __builtin__' will be the *only* way to get at builtins from normal
    code. At least, I'm now writing my code as though that's the case :-)

    --
    \ “The man who is denied the opportunity of taking decisions of |
    `\ importance begins to regard as important the decisions he is |
    _o__) allowed to take.” —C. Northcote Parkinson |
    Ben Finney

    Leave a comment:


  • LHB
    Guest replied
    Re: __builtins__

    Marc 'BlackJack' Rintsch a écrit :
    On Fri, 08 Feb 2008 00:25:14 -0800, loquehumaine wrote:
    >
    >I have seen that if I type help() at a prompt, and then 'modules',
    >I'll be given a list of all modules available, thanks to this group..
    >But I have seen the differences between them and the one in
    >dir(__builtins __).
    >Why are some modules in __builtins__ and others don't ? (UserDict for
    >example)
    >
    `__builtins__` doesn't contain modules::
    You are right... I don't know why I thought there was math here... It's
    not in sys.modules either...
    Is there "a place" where you can find a list of 'some' available modules
    ('standard' ones like math, sys, ...) but not all, or I really need a
    break during the week-end?
    If so, what the difference between the 'present' and the 'missing' ones?

    For example, in http://docs.python.org/modindex.html for math: "This
    module is always available." unlike pickle or HTMLParser. Is this only
    because of the versions of Python?

    I think I have mixed-up a lot of things and that I need a little bit
    more of readings about builtin things... (Doc that goes further than
    http://docs.python.org/lib/builtin.html)
    Python 2.4.4 (#2, Apr 12 2007, 21:03:11)
    [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
    Type "help", "copyright" , "credits" or "license" for more information.
    >>import inspect
    >>inspect.getme mbers(__builtin s__, inspect.ismodul e)
    []
    At least I have learn a new module =)

    `__builtins__` is an implementation detail, and `__builtin__` is a name
    of a module you can import. You should not use `__builtins__` but import
    `__builtin__` and inspect that instead of `__builtins__`.
    Ok. Should I only see `__builtins__` as an access to builtin
    functions/exception/... ?
    Don't ``del __builtins__`` in the first place. :-)
    Fair enough ^_^
    So the real question is, why you see 'math' in `__builtins__`. It should
    not be there.
    I think the answer is that I need more rest...
    >
    Ciao,
    Marc 'BlackJack' Rintsch
    Thanks a lot,

    LHB

    Leave a comment:


  • Marc 'BlackJack' Rintsch
    Guest replied
    Re: __builtins__

    On Fri, 08 Feb 2008 00:25:14 -0800, loquehumaine wrote:
    I have seen that if I type help() at a prompt, and then 'modules',
    I'll be given a list of all modules available, thanks to this group..
    But I have seen the differences between them and the one in
    dir(__builtins_ _).
    Why are some modules in __builtins__ and others don't ? (UserDict for
    example)
    `__builtins__` doesn't contain modules::

    Python 2.4.4 (#2, Apr 12 2007, 21:03:11)
    [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
    Type "help", "copyright" , "credits" or "license" for more information.
    >>import inspect
    >>inspect.getme mbers(__builtin s__, inspect.ismodul e)
    []
    Why dir(__builtins_ _) gives me "math" but not help(__builtins __) ?
    So there's no 'math' in `__builtins__`: :
    >>'math' in dir(__builtins_ _)
    False
    What are the differences between __builtins__ and __builtin__ ? (By
    the way, I have python 2.4)
    `__builtins__` is an implementation detail, and `__builtin__` is a name
    of a module you can import. You should not use `__builtins__` but import
    `__builtin__` and inspect that instead of `__builtins__`.

    The (symmetric) difference of the two is empty::
    >>import __builtin__
    >>set(dir(__bui ltins__)).symme tric_difference (dir(__builtin_ _))
    set([])
    Finally, if I do del(__builtins_ _), what can I do to repair the
    "mistake" (as I got an import error __import__ not found if I want to
    import __builtins__... ?
    Don't ``del __builtins__`` in the first place. :-)
    That's may be obvious for you, but that's all strange to me and I
    didn't find answers on the net...
    So the real question is, why you see 'math' in `__builtins__`. It should
    not be there.

    Ciao,
    Marc 'BlackJack' Rintsch

    Leave a comment:


  • loquehumaine@gmail.com
    Guest started a topic __builtins__

    __builtins__

    Hi there,
    I'm a newby in python (I know a little in programmation) and I have
    a lot of questions on builtins but my first one is about modules...

    I have seen that if I type help() at a prompt, and then 'modules',
    I'll be given a list of all modules available, thanks to this group..
    But I have seen the differences between them and the one in
    dir(__builtins_ _).
    Why are some modules in __builtins__ and others don't ? (UserDict for
    example)
    Why dir(__builtins_ _) gives me "math" but not help(__builtins __) ?

    What are the differences between __builtins__ and __builtin__ ? (By
    the way, I have python 2.4)

    Finally, if I do del(__builtins_ _), what can I do to repair the
    "mistake" (as I got an import error __import__ not found if I want to
    import __builtins__... ?

    That's may be obvious for you, but that's all strange to me and I
    didn't find answers on the net...
Working...