Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วัตถุในตัวใน Python (บิวด์อิน)


โมดูลในตัวถูกโหลดโดยอัตโนมัติทุกครั้งที่เริ่มล่าม Python ไม่ว่าจะเป็นสภาพแวดล้อมการดำเนินการระดับบนสุดหรือเป็นเซสชันแบบโต้ตอบ คลาส Object ซึ่งเป็นคลาสพื้นฐานสำหรับอ็อบเจ็กต์ Python ทั้งหมดถูกกำหนดไว้ในโมดูลนี้ คลาสประเภทข้อมูลในตัวทั้งหมด เช่น ตัวเลข สตริง รายการ ฯลฯ ถูกกำหนดไว้ในโมดูลนี้ คลาส BaseException รวมถึงข้อยกเว้นในตัวทั้งหมด ถูกกำหนดไว้ด้วย นอกจากนี้ ฟังก์ชันในตัวทั้งหมดยังถูกกำหนดไว้ในโมดูลในตัวด้วย

เนื่องจากโมดูลนี้ถูกนำเข้าในเซสชันปัจจุบันโดยอัตโนมัติ โดยปกติแล้วจะไม่มีการนำเข้าอย่างชัดเจน ฟังก์ชันในตัวทั้งหมดที่ใช้ในโค้ดเรียกทำงานนั้นโดยค่าเริ่มต้นถือว่ามาจากโมดูลในตัว ตัวอย่างเช่น

>>> len('hello')
5

เทียบเท่ากับ

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

อย่างไรก็ตาม จำเป็นต้องมีการนำเข้าโมดูลนี้อย่างชัดเจน เมื่อมีฟังก์ชันที่ผู้ใช้กำหนดซึ่งมีชื่อเดียวกับฟังก์ชันในตัว ตัวแปล Python ให้ความสำคัญกับฟังก์ชันที่ผู้ใช้กำหนดสูงกว่า ดังนั้น หากโค้ดมีทั้งผู้ใช้ที่กำหนดและฟังก์ชันในตัวที่มีชื่อเดียวกัน โค้ดหลังจะต้องนำหน้าด้วยโมดูลในตัว

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)

เอาท์พุต

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

โมดูลส่วนใหญ่มีชื่อ __builtins__ ซึ่งเป็นส่วนหนึ่งของ globals ค่าของ __builtins__ มักจะเป็นโมดูลนี้หรือค่าของ __dict__attribute ของโมดูลนี้

>>> 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)>}