zoukankan      html  css  js  c++  java
  • Python的程序结构[5] -> 模块/Module[0] -> 内建模块 builtins

    builtins 内建模块 / builtins Module


    在Python的模块中,有一种特殊模块,无需导入便可以使用,其中包含了许多内建函数与类。

    builtins 模块内容 / builtins Content


    通过对 builtins 模块的导入(也可使用 __builtins__ 代替),可以利用 pdir 模块查看内部的函数与类及异常等。

    pdir 模块是一个用于查看模块内部所有函数、类等信息的模块,安装方式为:

    pip install pdir2

    具体使用方式也十分简单,

    1 import builtins
    2 import pdir
    3 # Or print(pdir(__builtins__))
    4 print(pdir(builtins))

    最终输出如下,可以看到 builtins 模块中包含了所有的内置变量或函数等。

    module attribute:
        __loader__, __name__, __package__, __spec__
    other:
        Ellipsis, False, None, NotImplemented, True, __debug__, copyright, credits, exit, help, license, quit
    special attribute:
        __doc__
    class:
        BaseException: Common base class for all exceptions
        GeneratorExit: Request that a generator exit.
        KeyboardInterrupt: Program interrupted by user.
        SystemExit: Request to exit from the interpreter.
        bool: bool(x) -> bool
        bytearray: bytearray(iterable_of_ints) -> bytearray
        bytes: bytes(iterable_of_ints) -> bytes
        classmethod: classmethod(function) -> method
        complex: complex(real[, imag]) -> complex number
        dict: dict() -> new empty dictionary
        enumerate: enumerate(iterable[, start]) -> iterator for index, value of iterable
        filter: filter(function or None, iterable) --> filter object
        float: float(x) -> floating point number
        frozenset: frozenset() -> empty frozenset object
        int: int(x=0) -> integer
        list: list() -> new empty list
        map: map(func, *iterables) --> map object
        memoryview: Create a new memoryview object which references the given object.
        object: The most base type
        property: property(fget=None, fset=None, fdel=None, doc=None) -> property attribute
        range: range(stop) -> range object
        reversed: reversed(sequence) -> reverse iterator over values of the sequence
        set: set() -> new empty set object
        slice: slice(stop)
        staticmethod: staticmethod(function) -> method
        str: str(object='') -> str
        super: super() -> same as super(__class__, <first argument>)
        tuple: tuple() -> empty tuple
        type: type(object_or_name, bases, dict)
        zip: zip(iter1 [,iter2 [...]]) --> zip object
    exception:
        ArithmeticError: Base class for arithmetic errors.
        AssertionError: Assertion failed.
        AttributeError: Attribute not found.
        BlockingIOError: I/O operation would block.
        BrokenPipeError: Broken pipe.
        BufferError: Buffer error.
        BytesWarning: Base class for warnings about bytes and buffer related problems, mostly
        ChildProcessError: Child process error.
        ConnectionAbortedError: Connection aborted.
        ConnectionError: Connection error.
        ConnectionRefusedError: Connection refused.
        ConnectionResetError: Connection reset.
        DeprecationWarning: Base class for warnings about deprecated features.
        EOFError: Read beyond end of file.
        EnvironmentError: Base class for I/O related errors.
        Exception: Common base class for all non-exit exceptions.
        FileExistsError: File already exists.
        FileNotFoundError: File not found.
        FloatingPointError: Floating point operation failed.
        FutureWarning: Base class for warnings about constructs that will change semantically
        IOError: Base class for I/O related errors.
        ImportError: Import can't find module, or can't find name in module.
        ImportWarning: Base class for warnings about probable mistakes in module imports
        IndentationError: Improper indentation.
        IndexError: Sequence index out of range.
        InterruptedError: Interrupted by signal.
        IsADirectoryError: Operation doesn't work on directories.
        KeyError: Mapping key not found.
        LookupError: Base class for lookup errors.
        MemoryError: Out of memory.
        NameError: Name not found globally.
        NotADirectoryError: Operation only works on directories.
        NotImplementedError: Method or function hasn't been implemented yet.
        OSError: Base class for I/O related errors.
        OverflowError: Result too large to be represented.
        PendingDeprecationWarning: Base class for warnings about features which will be deprecated
        PermissionError: Not enough permissions.
        ProcessLookupError: Process not found.
        RecursionError: Recursion limit exceeded.
        ReferenceError: Weak ref proxy used after referent went away.
        ResourceWarning: Base class for warnings about resource usage.
        RuntimeError: Unspecified run-time error.
        RuntimeWarning: Base class for warnings about dubious runtime behavior.
        StopAsyncIteration: Signal the end from iterator.__anext__().
        StopIteration: Signal the end from iterator.__next__().
        SyntaxError: Invalid syntax.
        SyntaxWarning: Base class for warnings about dubious syntax.
        SystemError: Internal error in the Python interpreter.
        TabError: Improper mixture of spaces and tabs.
        TimeoutError: Timeout expired.
        TypeError: Inappropriate argument type.
        UnboundLocalError: Local name referenced but not bound to a value.
        UnicodeDecodeError: Unicode decoding error.
        UnicodeEncodeError: Unicode encoding error.
        UnicodeError: Unicode related error.
        UnicodeTranslateError: Unicode translation error.
        UnicodeWarning: Base class for warnings about Unicode related problems, mostly
        UserWarning: Base class for warnings generated by user code.
        ValueError: Inappropriate argument value (of correct type).
        Warning: Base class for warning categories.
        WindowsError: Base class for I/O related errors.
        ZeroDivisionError: Second argument to a division or modulo operation was zero.
    function:
        __build_class__: __build_class__(func, name, *bases, metaclass=None, **kwds) -> class
        __import__: __import__(name, globals=None, locals=None, fromlist=(), level=0) -> module
        abs: Return the absolute value of the argument.
        all: Return True if bool(x) is True for all values x in the iterable.
        any: Return True if bool(x) is True for any x in the iterable.
        ascii: Return an ASCII-only representation of an object.
        bin: Return the binary representation of an integer.
        callable: Return whether the object is callable (i.e., some kind of function).
        chr: Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.
        compile: Compile source into a code object that can be executed by exec() or eval().
        delattr: Deletes the named attribute from the given object.
        dir: dir([object]) -> list of strings
        divmod: Return the tuple (x//y, x%y).  Invariant: div*y + mod == x.
        eval: Evaluate the given source in the context of globals and locals.
        exec: Execute the given source in the context of globals and locals.
        format: Return value.__format__(format_spec)
        getattr: getattr(object, name[, default]) -> value
        globals: Return the dictionary containing the current scope's global variables.
        hasattr: Return whether the object has an attribute with the given name.
        hash: Return the hash value for the given object.
        hex: Return the hexadecimal representation of an integer.
        id: Return the identity of an object.
        input: Read a string from standard input.  The trailing newline is stripped.
        isinstance: Return whether an object is an instance of a class or of a subclass thereof.
        issubclass: Return whether 'cls' is a derived from another class or is the same class.
        iter: iter(iterable) -> iterator
        len: Return the number of items in a container.
        locals: Return a dictionary containing the current scope's local variables.
        max: max(iterable, *[, default=obj, key=func]) -> value
        min: min(iterable, *[, default=obj, key=func]) -> value
        next: next(iterator[, default])
        oct: Return the octal representation of an integer.
        open: Open file and return a stream.  Raise IOError upon failure.
        ord: Return the Unicode code point for a one-character string.
        pow: Equivalent to x**y (with two arguments) or x**y % z (with three arguments)
        print: print(value, ..., sep=' ', end='
    ', file=sys.stdout, flush=False)
        repr: Return the canonical string representation of the object.
        round: round(number[, ndigits]) -> number
        setattr: Sets the named attribute on the given object to the specified value.
        sorted: Return a new list containing all items from the iterable in ascending order.
        sum: Return the sum of a 'start' value (default: 0) plus an iterable of numbers
        vars: vars([object]) -> dictionary
    View Code

    builtins 的引用 / builtins Import


    对于builtins模块一般使用 __builtins__ 进行引用,如果在 __main__ 模块内引用,则 __builtins__ 是对 builtins 模块的直接引用,而如果是在非 __main__ 模块中引用,则 __builtins__ 是对 builtins.__dict__ 的引用,而非本身,即返回的类型实质上是一个字典。

    首先定义一个 Foo.py 文件,在文件中输入下面的代码

    1 print('__builtins__ called not in __main__, type is:', type(__builtins__))

    然后在另一个文件中将 Foo 导入,并同样对 __builtins__ 的引用进行查看,

    1 import Foo
    2 print('__builtins__ called in __main__, type is:', type(__builtins__))

    最终的输出可以看到,在 Foo 中,__builtins__ 返回的是一个字典,而在当前模块中则返回的是 module,即 builtins 模块

    __builtins__ called not in __main__, type is: <class 'dict'>
    __builtins__ called in __main__, type is: <class 'module'>

    Note: 这一特性在判断内置模块是否有某些函数的时候将会需要特别注意(常见于编写 Python2/3 都通用的代码时用于判断内置函数,如是否有 raw_input,从而对函数重新指向,使其通用于 Python2/3)。

    参考链接


    http://blog.sina.com.cn/s/blog_8a18c33d01019yek.html

  • 相关阅读:
    017 文件xfs_repair恢复,xfs_dump恢复,lvm动态扩容
    003 rsync客户端与服务端小脚本
    002 rsync守护进程传输方式详解
    001 期中架构简介、备份初识
    016 netstat、磁盘分区(fdisk、gdisk)
    015 Linux中常用的信号、HUP信号
    014 进程(PS与TOP)
    013 源码安装(Nginx&php为例)
    本地、远程仓库的搭建
    第八章
  • 原文地址:https://www.cnblogs.com/stacklike/p/8109425.html
Copyright © 2011-2022 走看看