Isinstance ใน Python คืออะไรและจะใช้งานได้อย่างไร?



บทความนี้จะแนะนำวิธีการที่เป็น Isinstance ใน Python และให้คำอธิบายแนวคิดอย่างละเอียดพร้อมการสาธิต

เป็นหนึ่งในภาษาโปรแกรมที่ทรงพลังที่สุดในตลาดปัจจุบัน Python ยังรองรับการใช้งานภาษาโปรแกรมอื่น ๆ ภายในระบบนิเวศเช่น Java, C และ C ++ จากโมดูลและฟังก์ชันมากมายที่มีอยู่ในระบบนิเวศของ Python สิ่งหนึ่งที่โดดเด่นในส่วนที่เหลือคือ isinstance ใน Python ดังนั้นในบทความนี้เราจะพูดถึงรายละเอียดเกี่ยวกับ isinstance การใช้งานและคุณสมบัติที่นำมาสู่ตาราง

คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้





เอาล่ะ!

Isinstance ใน Python คืออะไร?

Python isinstance ใช้เพื่อตรวจสอบว่าออบเจ็กต์แรกที่เป็นอาร์กิวเมนต์เป็นอินสแตนซ์หรือคลาสย่อยของคลาส classinfo ที่เป็นอาร์กิวเมนต์ที่สองหรือไม่



ตารางธาตุของเครื่องมือ devops

ไวยากรณ์สำหรับ isinstance ใน Python มีดังนี้

isinstance (วัตถุ classinfo)

ให้เราดูว่า Isinstance ใน Python มีพารามิเตอร์และค่าส่งคืนใดบ้าง



พารามิเตอร์และค่าส่งกลับของ Isinstance

พารามิเตอร์

เมื่อคุณทราบถึงไวยากรณ์สำหรับ isinstance แล้วให้เรามาดูพารามิเตอร์ที่จะต้องพิจารณาอย่างละเอียดยิ่งขึ้น

  1. วัตถุ: นี่คือวัตถุที่ต้องตรวจสอบ
  2. Classinfo: นี่คือคลาสข้อมูลหรือทูเพิลของคลาสที่อ็อบเจ็กต์ต้องถูกตรวจสอบ

ส่งคืนค่า

เมื่อใช้ isinstance ในโปรแกรมค่าส่งคืนจะขึ้นอยู่กับเงื่อนไขหลายประการดังที่อธิบายไว้ในคำแนะนำด้านล่าง

  1. True จะถูกส่งกลับหากอ็อบเจ็กต์เป็นคลาสย่อยของ classinfo หรือ tuple ของคลาส
  2. False จะถูกส่งกลับหากอ็อบเจ็กต์ไม่ใช่คลาสย่อยของ classinfo หรือ tuple ของคลาส

หากอยู่ในสถานการณ์เฉพาะ classinfo ไม่ใช่ประเภทหรือทูเพิลประเภทข้อยกเว้น typeerror จะถูกยกขึ้นบนหน้าจอของผู้ใช้

ตัวอย่าง

เพื่อให้เข้าใจการใช้ isinstance ได้ดีขึ้นลองดูตัวอย่างบางส่วน

ตัวอย่าง # 1

class Foo: a = 5 fooInstance = Foo () print (isinstance (fooInstance, Foo)) print (isinstance (fooInstance, (list, tuple))) print (isinstance (fooInstance, (list, tuple, Foo)))

เอาต์พุต

จริง

เท็จ

จริง

Isinstance ใน Python: ตัวอย่าง # 2

numbers = [1, 2, 3] result = isinstance (numbers, list) print (numbers, 'instance of list?', result) result = isinstance (numbers, dict) print (numbers, 'instance of dict?', ผลลัพธ์ ) result = isinstance (numbers, (dict, list)) print (numbers, 'instance of dict or list?', result) number = 5 result = isinstance (number, list) print (number, 'instance of list?', ผลลัพธ์) result = isinstance (number, int) print (number, 'instance of int?', result)

เอาต์พุต

[1, 2, 3] รายการ? จริง

[1, 2, 3] อินสแตนซ์ของ dict? เท็จ

[1, 2, 3] อินสแตนซ์ของคำสั่งหรือรายการ? จริง

5 ตัวอย่างรายการ? เท็จ

5 อินสแตนซ์ของ int? จริง

ตัวอย่าง # 3

# รหัส Python สำหรับ isinstance () class Test: a = 5 TestInstance = Test () print (isinstance (TestInstance, Test)) print (isinstance (TestInstance, (list, tuple))) print (isinstance (TestInstance, (list, tuple , ทดสอบ)))

เอาต์พุต

php สร้างอาร์เรย์จากสตริง

จริง

เท็จ

จริง

ให้เราดำเนินการต่อกับบทความ 'Isinstance In Python' และและทำความเข้าใจการใช้วิธีการ Type

การใช้ Type ใน Python

คล้ายกับ isinstance มีอีกวิธีหนึ่งในตัวใน Python ซึ่งใช้เพื่อตรวจสอบตัวแปร type pf ที่ใช้ระหว่างรันไทม์ หากอาร์กิวเมนต์หรืออ็อบเจ็กต์เดียวถูกส่งผ่านเมธอด type จะส่งกลับประเภทของอ็อบเจ็กต์ที่กำลังใช้ระหว่างรันไทม์

เพื่อให้เข้าใจสิ่งนี้ได้ดีขึ้นลองดูตัวอย่างด้านล่าง

Isinstance ใน Python: ตัวอย่าง # 1.1

# ประเภทรหัส Python () ที่มีพารามิเตอร์ออบเจ็กต์เดียว x = 5 s = 'sampleoutput' y = [1,2,3] พิมพ์ (พิมพ์ (x)) พิมพ์ (ประเภท (s)) พิมพ์ (ประเภท (y))

เอาต์พุต

คลาส 'int'

คลาส 'str'

คลาส 'รายการ'

ตัวอย่าง # 1.2

# รหัส Python สำหรับ type () พร้อมชื่อ # ฐานและพารามิเตอร์ dict o1 = type ('X', (object,), dict (a = 'Foo', b = 12)) print (type (o1)) print (vars (o1)) การทดสอบคลาส: a = 'Foo' b = 12 o2 = type ('Y', (test,), dict (a = 'Foo', b = 12)) print (type (o2)) พิมพ์ (vars (o2))

เอาต์พุต

{‘b’: 12, ‘a’: ‘Foo’, ‘__dict__’:, ‘__doc__’: ไม่มี, ‘__weakref__’:}

{‘b’: 12, ‘a’: ‘Foo’, ‘__doc__’: ไม่มี}

ให้เราเปรียบเทียบ Type และ Isinstance ใน Python

ความแตกต่างระหว่าง Type () และ Isinstance

พิมพ์และ isinstance ใน Python ให้บริการสองฟังก์ชันที่แตกต่างกันมาก ลองดูคำแนะนำด้านล่างเพื่อทำความเข้าใจความแตกต่างให้ดีขึ้น

  1. หากคุณต้องการตรวจสอบว่าวัตถุมีบางประเภทหรือไม่ควรใช้ isinstance เนื่องจาก isinstance จะสามารถตรวจสอบได้ว่าออบเจ็กต์ที่ส่งผ่านในอาร์กิวเมนต์แรกเป็นประเภทเดียวกับที่ส่งผ่านในอาร์กิวเมนต์ที่สองหรือไม่
  2. ในทางกลับกันการใช้ประเภทเป็นที่ต้องการมากกว่าเมื่อคุณต้องการตรวจสอบประเภทของวัตถุเฉพาะและไม่เปรียบเทียบกับวัตถุอื่น

ตัวอย่าง

# รหัส Python เพื่อแสดงคลาสการพิมพ์เป็ด User (object): def __init __ (self, firstname): self.firstname = firstname @property def name (self): return self.firstname class Animal (object): pass class Fox (Animal) : name = 'Fox' class Bear (Animal): name = 'Bear' # ใช้แอตทริบิวต์. name (หรือคุณสมบัติ) โดยไม่คำนึงถึงประเภทสำหรับใน [User ('SampleOutput'), Fox (), Bear ()] : พิมพ์ (a.name)

เอาต์พุต

ตัวอย่าง

ฟ็อกซ์

หมี

วิธีหาความยาวของอาร์เรย์ในจาวาสคริปต์

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

รหัส #python เพื่อแสดงให้เห็นถึงการขาด #support สำหรับการสืบทอดในประเภท () คลาส MyDict (dict): '' 'คำสั่งปกติที่สร้างขึ้นด้วยคีย์' เริ่มต้น '' '' def __init __ (self): self 'initial'] = 'some data' d = MyDict () print (type (d) == dict) print (type (d) == MyDict) d = dict () print (type (d) == dict) print (ประเภท (d) == MyDict)

เอาต์พุต

เท็จ

จริง

จริง

เท็จ

นี่มันพวกเรามาถึงตอนท้ายของบทความนี้ ฉันหวังว่าคุณจะเข้าใจ Isinstance ใน Python และสิ่งที่มันทำ

หากต้องการรับความรู้เชิงลึกเกี่ยวกับ Python พร้อมกับแอพพลิเคชั่นต่างๆคุณสามารถทำได้ สำหรับการฝึกอบรมออนไลน์สดพร้อมการสนับสนุนตลอด 24 ชั่วโมงทุกวันและการเข้าถึงตลอดชีวิต

มีคำถามสำหรับเรา? พูดถึงพวกเขาในส่วนความคิดเห็นของบทความนี้แล้วเราจะติดต่อกลับไป