Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Đối tượng tích hợp sẵn trong Python (builtins)


Mô-đun builtins được tải tự động mỗi khi trình thông dịch Python khởi động, चाहे dưới dạng môi trường thực thi cấp cao nhất hoặc phiên bản tương tác. Lớp Object, mà là lớp cơ sở cho tất cả các đối tượng Python, được định nghĩa trong mô-đun này. Tất cả các lớp kiểu dữ liệu tích hợp sẵn như số, chuỗi, danh sách, v.v. đều được định nghĩa trong mô-đun này. Lớp BaseException cũng như tất cả các ngoại lệ tích hợp sẵn cũng được định nghĩa ở đây. Hơn nữa, tất cả các hàm tích hợp sẵn cũng được định nghĩa trong mô-đun builtins.

Vì mô-đun này được nhập trong phiên hiện tại tự động, bình thường nó không được nhập tường minh. Tất cả các hàm tích hợp sẵn được dùng trong mã thực thi mặc định được coi là từ mô-đun builtins. Ví dụ:

>>> len('hello')
5

ngầm tương đương với

>>> import builtins
>>> builtins.len('hello')
5

Tuy nhiên, nhập tường minh mô-đun này là bắt buộc khi cũng có một hàm do người dùng định nghĩa cùng tên với hàm tích hợp sẵn. Trình thông dịch Python ưu tiên cao hơn cho hàm do người dùng định nghĩa. Do đó, nếu mã chứa cả hàm do người dùng định nghĩa và hàm tích hợp sẵn cùng tên, hàm sau phải được tiền tố bằng mô-đun builtins.

def len(string):
    print('local len() function')
print('calling len() function in builtins module')
import builtins
l = builtins.len(string)
print('length:', l)
string = "Hello World"
len(string)

Đầu ra

local len() function
calling len() function in builtins module
length: 11

Hầu hết các mô-đun có tên __builtins__ được cung cấp như một phần của globals của chúng. Giá trị của __builtins__ thường là mô-đun này hoặc giá trị của thuộc tính __dict__ của mô-đun này.

>>> import math
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'math': <module 'math' (built-in)>}