builtins 内建模块 / builtins Module


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

builtins 模块内容 / builtins Content


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

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

pip install pdir2

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

 import builtins
import pdir
# Or print(pdir(__builtins__))
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='\n', 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

builtins 的引用 / builtins Import


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

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

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

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

 import Foo
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

Python的程序结构[5] -> 模块/Module[0] -> 内建模块 builtins的更多相关文章

  1. Python的程序结构[2] -> 类/Class[3] -> 内建类与内建函数

    内建类与内建函数的区分 / Distinction of Built-in Type and Function 对于 Python,有许多可以不需要定义或引用就可以使用的函数(类)(参考内建模块),诸 ...

  2. Python的程序结构[2] -> 类/Class[5] -> 内建类 bytes 和 bytearray

    内建类 bytes 和 bytearray / Built-in Type bytes and bytearray 关于内建类 Python的内建类 bytes 主要有以下几点: class byte ...

  3. Python的程序结构[2] -> 类/Class[6] -> 内建类 map

    内建类map / Built-in Type map 关于内建类 map 是一个内建的类,能够返回一个 map 的 obj.map 的第一个参数为一个可执行函数,后续参数均为可迭代对象,map 会分别 ...

  4. Python的程序结构[2] -> 类/Class[4] -> 内建类 super

    内建类 super / Built-in Type super 关于内建类 对于 super 可以从官方文档中看到基本介绍,super 接收一个类,以及类或类的实例,最终返回一个代理对象的实例.而 M ...

  5. Python的程序结构[3] -> 变量/Variable[0] -> 变量类型

    变量类型 / Variable Type 在 Python 中,变量主要有以下几种,即全局变量,局部变量和内建变量, 全局变量 / Global Variable 通常定义于模块内部,大写变量名形式存 ...

  6. Python的程序结构[1] -> 方法/Method[0] -> 类实例方法、私有方法和抽象方法

    类实例方法.私有方法和抽象方法 Python中最常用的就是类实例方法,类似于属性中的类实例属性,同时,也存在与私有属性类似方法,即私有方法,下面介绍这两种常见的方法,以及一种特殊意义的类实例方法 -- ...

  7. Python的程序结构[2] -> 类/Class[0] -> 类的特殊属性

    类的特殊属性 / Special Property of Class Python 中通过 class 进行类的定义,类可以实例化成实例并利用实例对方法进行调用. 类中还包含的一些共有的特殊属性. 特 ...

  8. Python的程序结构[4] -> 函数/Function[0] -> 函数与方法的区别

    函数与方法的区别 / Distinction of Function and Method 关于函数与方法的区别,可根据两者的定义看出, 函数function -- A series of state ...

  9. Python的程序结构[4] -> 函数/Function[1] -> 内建函数

    内建函数 / Built-in Function or Method Python中有许多的内建函数(查看内建模块部分),此处将对内建函数进行介绍 内建函数 ord / built-in functi ...

随机推荐

  1. Windows Phone 图片扩展类

    using System.IO; using System.Text; using System.Net; using System.Threading.Tasks; using System.Win ...

  2. Python 3基础教程10-全局变量和局部变量

    本文来讲讲全局变量和局部变量,前面学习了函数的基本使用,所以,这里就要注意变量的使用和访问权限. 试试下面的demo.py

  3. 【转载】全面解析Unity3D自动生成的脚本工程文件

    我们在Unity3D开发的时候,经常会看到它会产生不少固定命名工程文件,诸如:  Assembly-CSharp-vs.csproj  Assembly-CSharp-firstpass-vs.csp ...

  4. (转\整)UE4游戏优化 多人大地型游戏的优化(三)GPU的优化

    施主分享随缘,评论随心,@author:白袍小道 小道暗语: 1.因为小道这里博客目录没自己整,暂时就用随笔目录结构,所以二级目录那啥就忽略了.标题格式大致都是(原or转) 二级目录 (标题) 2.因 ...

  5. U-Net卷积神经网络

    由于项目需要,用U-NET跑一个程序来对医学影像进行分割(segmentation),因此跑去看了下这篇论文(paper),下面会介绍一下U-Net的框架及要点,如果哪里有写的不对的,或者好的建议,欢 ...

  6. TensorFlow——深度学习笔记

    深度学习与传统机器学习的区别 传统机器学习输入的特征为人工提取的特征,例如人的身高.体重等,深度学习则不然,它接收的是基础特征,例如图片像素等,通过多层复杂特征提取获得. 深度学习.人工智能.机器学习 ...

  7. CentOS下创建和root权限完全相同用户

    新建用户 [root@bagon ~]# useradd newroot 修改密码 [root@bagon ~]# passwd newroot 编辑/etc/passwd,找到新建用户那一行 new ...

  8. django QuerySet 的常用API

    为了加深对queryset对象api的了解,我们建立了以下示例模型: from django.db import models class Author(models.Model): "&q ...

  9. 湘潭邀请赛 2018 I Longest Increasing Subsequence

    题意: 给出一个长度为n的序列,序列中包含0.定义f(i)为把所有0变成i之后的Lis长度,求∑ni=1i⋅f(i). 题解: 设不考虑0的Lis长度为L,那么对于每个f(i),值为L或L+1. 预处 ...

  10. 262144 (game)

    262144 (game) 题目描述 Bessie likes downloading games to play on her cell phone, even though she does fi ...