📜  Python-builtins 中的内置对象

📅  最后修改于: 2022-05-13 01:54:34.015000             🧑  作者: Mango

Python-builtins 中的内置对象

这个Python模块提供对Python的所有“内置”标识符的直接访问。例如builtins.open是内置函数open().大多数应用程序通常不会显式访问此模块,但在提供与内置值同名的对象的模块中很有用,但其中也需要该名称的内置。

例如,在一个模块中想要实现一个封装了内置 open() 的open()函数,可以直接使用这个模块:

open(path, 'r')

但是如果有一个与内置函数同名的函数,则需要显式调用这些函数:

def open(path):
    f = builtins.open(path, 'r')

这里第一个 open函数由程序员定义,第二个是从 builtins 模块导入的。

例子:

# without explicitly calling 
# the builtins module
print(round(3.14))
  
  
# explicitly calling the 
# builtins module
import builtins
  
a = builtins.round(3.14)
print(a)

输出:

3
3

要记住的一件更有趣的事情是,编译器为内置模块包含的预定义函数的用户定义版本赋予了更高的优先级。因此,如果一个程序包含对这两种程序的调用,则将调用用户定义的程序。要调用预定义版本,应使用内置关键字。

例子:

import builtins
  
  
def pow():
      
    print("inside user-defined function pow() \
    to calculate 2**3 ")
    val = 2
      
    for i in range(1, 3, 1):
        val=val*2
          
    return val
  
def main():
      
    print("calling for pre-defined version of pow() \
    from builtins module to calculate 2**3 ")
      
    print(builtins.pow(2, 3))
    a = pow()
    print(a)
      
# Driver Code
main()

输出:

内置模块的内容

每次解释器启动时都会自动加载这个模块,这就是为什么它通常从不显式调用的原因。以下是在内置函数中定义的:

  • 对象类——所有Python对象的基类
  • 所有内置数据类型类——所有数据类型,如数字、字符串、列表等。
  • 内置异常类——如 BaseException 类等。
  • 内置函数– open()、abs()、all() 等函数。
  • 内置常量– False、True 等常量。

内置数据类型类

  • TRUTH VALUE TESTING - 用于检查代码有效性的语句和条件。
  • 布尔运算- 和,或,不。
  • 比较- =、==、!=、是和不是。
  • NUMERIC TYPES - int、float、complex 和 bitwise 操作,如与、或、异或、移位和逆。
  • 迭代器类型 - 与容器迭代相关的操作。
  • 序列类型——列表、元组、范围和对这些的操作。
  • TEXT SEQUENCE TYPE - str 以及与字符串突变和显示相关的方法。
  • 二进制序列类型 - 字节、字节数组和内存视图。
  • 设置类型-设置和冻结集。
  • 映射类型 -字典。
  • CONTEXT MANAGER TYPES -运行时上下文相关的事情。
  • 其他——模块、实例、空对象、

示例:描述内置类型应用的简单程序

a =[1, 2, 3, 4]
  
for i in a:
  
    if i == 3:
        print("found")
    else:
        print("not found")

输出:

not found
not found
found
not found

内置功能

abs()delattr()hash()memoryview()set()
all()dict()help()min()setattr()
any()dir()hex()next()slice()
ascii()divmod()id()object()sorted()
bin()enumerate()input()oct()staticmethod()
bool()eval()int()open()str()
breakpoint()exec()isinstance()ord()sum()
bytearray()filter()issubclass()pow()super()
bytes()float()iter()print()tuple()
callable()format()len()property()type()
chr()frozenset()list()range()vars()
classmethod()getattr()locals()repr()zip()
compile()globals()map()reversed()__import__()
complex()hasattr()max()round()