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

ฟังก์ชัน vars() ใน Python


vars() ฟังก์ชันเป็นของคอลเลกชันของฟังก์ชัน inbuilt ที่จัดเตรียมโดยไลบรารีมาตรฐาน Python ส่งคืนแอตทริบิวต์ __dic__ ของอ็อบเจ็กต์ที่เกี่ยวข้องไปยังคอนโซล

ไวยากรณ์

vars(object)

ประเภทการคืนสินค้า

<Dictionary Type>

พารามิเตอร์

ฟังก์ชัน vars() ยอมรับเพียงพารามิเตอร์เดียว โดยรับวัตถุเป็นพารามิเตอร์ซึ่งสามารถเป็นโมดูล คลาส หรือวัตถุใดๆ ที่มีแอตทริบิวต์ __dict__ เชื่อมโยงอยู่ได้

พารามิเตอร์นี้เป็นทางเลือกในธรรมชาติ ในกรณีที่ใช้ฟังก์ชันโดยไม่มีพารามิเตอร์ พจนานุกรมที่มีตารางสัญลักษณ์ท้องถิ่นจะปรากฏขึ้น

ข้อยกเว้นที่เกี่ยวข้อง

หากอาร์กิวเมนต์ที่ส่งไม่ตรงกับแอตทริบิวต์ จะทำให้เกิดข้อยกเว้น TypeError

ขอบเขต

Vars() ทำหน้าที่เหมือนวิธีการ locals() เมื่อไม่มีการโต้แย้ง วิธีการ locals() จะแก้ไขและส่งคืนพจนานุกรมของตารางสัญลักษณ์ท้องถิ่นที่มีอยู่ในปัจจุบัน

กลไกการทำงาน

เชื่อมโยงกับแอตทริบิวต์ __name__; tuple ฐานได้รับการแยกรายการด้วยคลาสฐานและเชื่อมโยงแอตทริบิวต์ __bases__ &พจนานุกรมเป็นเนมสเปซปัจจุบันที่มีคำจำกัดความที่มีอยู่ในเนื้อหาของคลาสและได้รับการคัดลอกไปยังประเภทพจนานุกรมมาตรฐานเพื่อแสดงเป็นแอตทริบิวต์ __dict__

เรามาดูตัวอย่างกันเพื่อจะได้เข้าใจแนวคิดของฟังก์ชัน 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 ได้ทุกเมื่อที่ต้องการ