vars() ฟังก์ชันเป็นของคอลเลกชันของฟังก์ชัน inbuilt ที่จัดเตรียมโดยไลบรารีมาตรฐาน Python ส่งคืนแอตทริบิวต์ __dic__ ของอ็อบเจ็กต์ที่เกี่ยวข้องไปยังคอนโซล
ไวยากรณ์
vars(object)
ประเภทการคืนสินค้า
<Dictionary Type>
พารามิเตอร์
ฟังก์ชัน vars() ยอมรับเพียงพารามิเตอร์เดียว โดยรับวัตถุเป็นพารามิเตอร์ซึ่งสามารถเป็นโมดูล คลาส หรือวัตถุใดๆ ที่มีแอตทริบิวต์ __dict__ เชื่อมโยงอยู่ได้
พารามิเตอร์นี้เป็นทางเลือกในธรรมชาติ ในกรณีที่ใช้ฟังก์ชันโดยไม่มีพารามิเตอร์ พจนานุกรมที่มีตารางสัญลักษณ์ท้องถิ่นจะปรากฏขึ้น
ข้อยกเว้นที่เกี่ยวข้อง
หากอาร์กิวเมนต์ที่ส่งไม่ตรงกับแอตทริบิวต์ จะทำให้เกิดข้อยกเว้น TypeError
ขอบเขต
Vars() ทำหน้าที่เหมือนวิธีการ locals() เมื่อไม่มีการโต้แย้ง วิธีการ locals() จะแก้ไขและส่งคืนพจนานุกรมของตารางสัญลักษณ์ท้องถิ่นที่มีอยู่ในปัจจุบัน
กลไกการทำงาน
เรามาดูตัวอย่างกันเพื่อจะได้เข้าใจแนวคิดของฟังก์ชัน vars()
ตัวอย่าง
class test: def __init__(self, integer_1=555, integer_2=787): self.integer_1 = integer_1 self.integer_2 = integer_2 obj_test = test() print(vars(obj_test))
ผลลัพธ์
{'integer_1': 555, 'integer_2': 787}
ตัวอย่าง
class sample: company = "Tutorial's Point " Number = 4 Topic = "Python 3.x." obj = vars(sample) print(obj)
ผลลัพธ์
{'__doc__': None, '__weakref__': <attribute '__weakref__' of 'sample' objects>, 'Topic': 'Python 3.x.', 'company': "Tutorial's Point ", '__module__': '__main__', 'Number': 4, '__dict__': <attribute '__dict__' of 'sample' objects>}
ตัวอย่าง
class test(): # Python __repr__() function returns the representation of the object. # It may contain any valid expression such as tuples, list, dictionary, string, set etc def __repr__(self): return "Tutorial's point" def localvariables(self): number = 4 return locals() if __name__ == "__main__": obj = test() print (obj.localvariables())
ผลลัพธ์
{'self': Tutorial's point, 'number': 4}
คำอธิบาย
โค้ดตัวอย่างแรกแสดงการใช้แอตทริบิวต์ __dict__ ที่เกี่ยวข้องกับตัวสร้างของคลาสโดยตั้งค่าเริ่มต้นในวิธี Constructor4
โค้ดตัวอย่างที่สองแสดงการใช้แอตทริบิวต์ __dict__ ที่เชื่อมโยงกับคลาสเอง โดยแอตทริบิวต์ __doc__ ว่างเปล่า
โค้ดตัวอย่างที่สามแสดงการใช้แอตทริบิวต์ __dict__ ที่เกี่ยวข้องกับฟังก์ชันที่ผู้ใช้กำหนดภายในคลาสที่มีตัวแปรในขอบเขตท้องถิ่น
บทสรุป
ในบทความนี้ เราได้เรียนรู้วิธีใช้ฟังก์ชัน vars ในกรณีต่างๆ ใน Python 3.x หรือก่อนหน้านี้ คุณสามารถใช้อัลกอริทึมเดียวกันเพื่อใช้ฟังก์ชัน vars ได้ทุกเมื่อที่ต้องการ