Computer >> Máy Tính >  >> Lập trình >> Python

Các đối tượng dựng sẵn trong Python (nội trang)

Mô-đun nội trang được tự động tải 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 dưới dạng phiên tương tác. Lớp Đối tượng, 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 dựng 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ệ dựng sẵn, cũng được định nghĩa trong đó. Hơn nữa, tất cả các chức năng tích hợp cũng được xác định trong mô-đun tích hợp.

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

>>> len('hello')
5

hoàn toàn tương đương với

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

Tuy nhiên, cần nhập rõ ràng mô-đun này khi cũng có một chức năng do người dùng xác định có cùng tên với chức năng tích hợp sẵn. Trình thông dịch Python mang lại quyền ưu tiên cao hơn cho hàm do người dùng xác định. Do đó, nếu mã chứa cả người dùng được xác định cũng như chức năng tích hợp có cùng tên, thì mã sau phải được đặt trước bằng mô-đun tích hợp.

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 toàn cầu của chúng. Giá trị của __builtins__ thường là mô-đun này hoặc giá trị của __dict__attribute 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)>}