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

ฟังก์ชัน dir() ใน Python: การใช้งานและตัวอย่าง

ฟังก์ชัน dir() ใน Python ใช้สำหรับคืนค่ารายการแอตทริบิวต์และเมธอดของอ็อบเจ็กต์ใดๆ เช่น ฟังก์ชัน โมดูล สตริง ลิสต์ ดิกชันนารี และอื่นๆ บทความนี้จะสาธิตการใช้งาน dir() ในรูปแบบต่างๆ

1. ใช้ dir() โดยไม่มีอาร์กิวเมนต์

เมื่อเรียก dir() โดยไม่ส่งอาร์กิวเมนต์ จะได้รายการชื่อในเนมสเปซปัจจุบัน (built-in names) ที่พร้อมใช้งานเมื่อเริ่มโปรแกรม Python

ตัวอย่าง

print(dir())

ผลลัพธ์

['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']

2. หลังจาก import โมดูลเพิ่มเติม

เมื่อ import โมดูลหรือสร้างตัวแปรใหม่ ชื่อเหล่านั้นจะถูกเพิ่มเข้าไปในเนมสเปซปัจจุบัน และจะปรากฏในผลลัพธ์ของ dir()

ตัวอย่าง

import math
x = math.ceil(10.03)
print(dir())

ผลลัพธ์

['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'math', 'x']

3. ตรวจสอบแอตทริบิวต์ของโมดูลเฉพาะ

ส่งชื่อโมดูลเป็นอาร์กิวเมนต์ให้ dir() เพื่อดูเมธอดและแอตทริบิวต์ภายในโมดูลนั้น เช่น math

ตัวอย่าง

import math
print(dir(math))

ผลลัพธ์ (บางส่วน)

['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', ..., 'nan', ..., 'trunc']

4. ใช้ dir() กับคลาสที่สร้างเอง

เราสามารถกำหนดเมธอด __dir__() ในคลาสของตัวเองเพื่อควบคุมสิ่งที่ dir() จะคืนค่า

ตัวอย่าง

class moviecount:
    def __dir__(self):
        return ['Red Man', 'Hello Boy', 'Happy Monday']

movie_dtls = moviecount()
print(dir(movie_dtls))

ผลลัพธ์

['Happy Monday', 'Hello Boy', 'Red Man']

สรุป: dir() เป็นเครื่องมือที่มีประโยชน์สำหรับการสำรวจ API ของอ็อบเจ็กต์ต่างๆ ช่วยให้ผู้พัฒนาทราบว่าเมธอดและแอตทริบิวต์ใดบ้างที่สามารถเรียกใช้ได้