พิมพ์() และ isinstance() ใน Python ด้วยตัวอย่าง
ประเภท() คืออะไร Python?
Python มีฟังก์ชันในตัวที่เรียกว่า type() ซึ่งช่วยให้คุณค้นหาประเภทคลาสของตัวแปรที่กำหนดเป็นอินพุต ตัวอย่างเช่น หากอินพุตเป็นสตริง คุณจะได้เอาต์พุตเป็น สำหรับรายการก็จะเป็น ฯลฯ
การใช้คำสั่ง type() คุณสามารถส่งผ่านอาร์กิวเมนต์ตัวเดียวได้ และค่าที่ส่งคืนจะเป็นประเภทคลาสของอาร์กิวเมนต์ที่กำหนด เช่น type(object)
นอกจากนี้ยังสามารถส่งผ่านสามอาร์กิวเมนต์เพื่อพิมพ์ () เช่น พิมพ์ (ชื่อ ฐาน dict) ในกรณีนี้ จะส่งอ็อบเจ็กต์ประเภทใหม่กลับมาให้คุณ
ไวยากรณ์สำหรับประเภท ()
type() สามารถใช้ได้ 2 วิธีดังแสดงด้านล่าง:
type(object) type(namr, bases, dict)
พารามิเตอร์: ประเภท (วัตถุ)
- วัตถุ: นี่คือพารามิเตอร์บังคับ หากนี่เป็นเพียงพารามิเตอร์ที่ส่งผ่านไปยังประเภท () ก็จะส่งคืนประเภทของพารามิเตอร์ให้คุณ
พารามิเตอร์: ประเภท(ชื่อ, ฐาน, dict)
- ชื่อ:ชื่อของชั้นเรียน
- ฐาน: (ไม่จำเป็น) นี่คือพารามิเตอร์ทางเลือก และเป็นคลาสพื้นฐาน
- คำสั่ง: (ไม่บังคับ) นี่คือพารามิเตอร์ทางเลือก และเป็นเนมสเปซที่มีคำจำกัดความของคลาส
ราคาย้อนกลับ
หากวัตถุเป็นพารามิเตอร์เดียวที่ส่งผ่านไปยัง type() ก็จะส่งคืนประเภทของวัตถุให้กับคุณ
หากพารามิเตอร์ที่ส่งไปยังประเภทเป็นประเภท (วัตถุ ฐาน dict) ในกรณีเช่นนี้ ก็จะส่งคืนวัตถุประเภทใหม่
ตัวอย่างประเภท()
ในตัวอย่างนี้ เราจะมีค่าสตริง ตัวเลข ค่า float จำนวนเชิงซ้อน รายการ ทูเพิล ดิกชันนารี และเซ็ต เราจะใช้ตัวแปรที่มีประเภทเพื่อดูผลลัพธ์ของตัวแปรแต่ละตัว
str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}
print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))
Output:
The type is :<class 'str'> The type is :<class 'int'> The type is :<class 'float'> The type is :<class 'complex'> The type is :<class 'list'> The type is :<class 'tuple'> The type is :<class 'dict'> The type is :<class 'set'>
ตัวอย่าง: การใช้ type() สำหรับวัตถุคลาส
เมื่อคุณตรวจสอบวัตถุที่สร้างจากคลาสโดยใช้ type() มันจะส่งคืนประเภทคลาสพร้อมกับชื่อของคลาส ในตัวอย่างนี้ เราจะสร้างคลาสและตรวจสอบประเภทออบเจ็กต์ที่สร้างขึ้นจากการทดสอบคลาส
class test:
s = 'testing'
t = test()
print(type(t))
Output:
<class '__main__.test'>
ตัวอย่าง: การใช้ชื่อ ฐาน และคำสั่งในประเภท ()
ประเภทนี้สามารถเรียกได้โดยใช้ไวยากรณ์: type(name, bases, dict)
พารามิเตอร์ทั้งสามที่ส่งผ่านไปยัง type() ได้แก่ ชื่อ ฐาน และ dict เป็นส่วนประกอบที่ประกอบเป็นคำจำกัดความของคลาส ชื่อแสดงถึงชื่อคลาส ฐานคือคลาสพื้นฐาน และ dict คือพจนานุกรมของแอ็ตทริบิวต์คลาสพื้นฐาน
ในตัวอย่างนี้ เราจะใช้ทั้งสามพารามิเตอร์ ได้แก่ ชื่อ ฐาน และคำสั่งในประเภท ()
ตัวอย่าง:
class MyClass:
x = 'Hello World'
y = 50
t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))
Output:
<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}
เมื่อคุณส่งอาร์กิวเมนต์ทั้งสามไปที่ type() มันจะช่วยให้คุณเริ่มต้นคลาสใหม่ด้วยแอตทริบิวต์คลาสพื้นฐาน
isinstance() ในคืออะไร Python?
Python อินสแตนซ์เป็นส่วนหนึ่งของ ฟังก์ชันในตัวของหลาม. Python isinstance() รับสองอาร์กิวเมนต์ และจะส่งคืนค่าเป็นจริงหากอาร์กิวเมนต์แรกเป็นอินสแตนซ์ของ classinfo ที่กำหนดเป็นอาร์กิวเมนต์ที่สอง
ไวยากรณ์คืออินสแตนซ์ ()
isinstance(object, classtype)
พารามิเตอร์
- วัตถุ: วัตถุที่มีอินสแตนซ์ที่คุณกำลังเปรียบเทียบกับ classtype วัตถุจะส่งคืนค่า true หากประเภทตรงกัน มิฉะนั้นจะส่งคืนค่า false
- ประเภทคลาส: ประเภทหรือคลาสหรือทูเพิลของประเภทและ/หรือคลาส
ส่งคืนค่า
มันจะคืนค่าเป็นจริงหากวัตถุนั้นเป็นอินสแตนซ์ของประเภทคลาสและเป็นเท็จหากไม่ใช่
ตัวอย่างของ isinstance()
ในส่วนนี้เราจะศึกษาตัวอย่างต่างๆ เพื่อเรียนรู้ isinstance()
ตัวอย่าง: isinstance() การตรวจสอบจำนวนเต็ม
โค้ดด้านล่างนี้จะเปรียบเทียบค่าจำนวนเต็ม 51 กับชนิด int โดยจะคืนค่า true หากชนิด 51 ตรงกับ int มิฉะนั้นจะคืนค่า false
age = isinstance(51,int)
print("age is an integer:", age)
Output:
age is an integer: True
ตัวอย่าง: isinstance() การตรวจสอบโฟลต
ในตัวอย่างนี้ เราจะเปรียบเทียบค่า float กับ type float เช่น ค่า 3.14 จะถูกเปรียบเทียบกับ type float
pi = isinstance(3.14,float)
print("pi is a float:", pi)
Output:
pi is a float: True
ตัวอย่าง: การตรวจสอบสตริง isinstance()
message = isinstance("Hello World",str)
print("message is a string:", message)
Output:
message is a string: True
ตัวอย่าง: isinstance() การตรวจสอบ Tuple
รหัสตรวจสอบสิ่งอันดับ (1,2,3,4,5) ที่มีประเภทสิ่งอันดับ มันจะคืนค่าเป็นจริงหากอินพุตที่ระบุเป็นประเภท tuple และจะเป็นเท็จหากไม่ใช่
my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)
Output:
my_tuple is a tuple: True
ตัวอย่าง : isinstance() ตั้งค่าการตรวจสอบ
รหัสตรวจสอบชุด ({1,2,3,4,5} พร้อมชุดประเภท มันจะคืนค่าเป็นจริงหากอินพุตที่กำหนดเป็นชุดประเภทและเป็นเท็จหากไม่ใช่
my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)
Output:
my_set is a set: True
ตัวอย่าง: การตรวจสอบรายการ isinstance()
รหัสตรวจสอบรายการ [1,2,3,4,5] พร้อมรายการประเภท มันจะคืนค่าเป็นจริงหากอินพุตที่ระบุเป็นประเภทรายการและเป็นเท็จหากไม่ใช่
my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)
Output:
my_list is a list: True
ตัวอย่าง: การตรวจสอบ dict isinstance()
รหัสจะตรวจสอบ dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”} ด้วยประเภท dict มันจะคืนค่าเป็นจริงหาก อินพุตที่กำหนดเป็นประเภท dict และ false หากไม่ใช่
my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)
Output:
my_dict is a dict: True
ตัวอย่าง: การทดสอบ isinstance() ในชั้นเรียน
โค้ดนี้แสดงการตรวจสอบประเภทของคลาสด้วย isinstance() โดยจะเปรียบเทียบอ็อบเจ็กต์ของคลาสกับชื่อของคลาสภายใน isinstance() หากอ็อบเจ็กต์เป็นของคลาส โค้ดจะคืนค่าเป็น true และคืนค่าเป็น false หากไม่เป็นเช่นนั้น
class MyClass:
_message = "Hello World"
_class = MyClass()
print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))
Output:
_class is a instance of MyClass() True
ความแตกต่างระหว่างประเภท () และ isinstance () ใน Python
| ชนิด () | isinstance () |
|---|---|
| Python มีฟังก์ชันในตัวที่เรียกว่า type() ซึ่งช่วยให้คุณค้นหาประเภทคลาสของตัวแปรที่กำหนดเป็นอินพุต | Python มีฟังก์ชันในตัวที่เรียกว่า isinstance() ซึ่งเปรียบเทียบค่ากับประเภทที่กำหนด หากค่าและประเภทที่กำหนดตรงกัน ระบบจะคืนค่าเป็น true หากไม่เช่นนั้นจะคืนค่าเป็น false |
| ค่าที่ส่งคืนเป็นวัตถุประเภท | ค่าที่ส่งกลับเป็นบูลีน เช่น จริงหรือเท็จ |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(type(A()) == A) print(type(B()) == A) Output: True False ในกรณีที่เป็นประเภทการตรวจสอบคลาสย่อยจะให้ค่ากลับเป็นเท็จ |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(isinstance(A(), A)) print(isinstance(B(), A)) Output: True True isinstance() ให้ค่าความจริงเมื่อตรวจสอบกับคลาสย่อย |
สรุป
- Python มีฟังก์ชันในตัวที่เรียกว่า type() ซึ่งช่วยให้คุณค้นหาประเภทคลาสของตัวแปรที่กำหนดเป็นอินพุต ตัวอย่างเช่น หากอินพุตเป็นสตริง คุณจะได้เอาต์พุตเป็น สำหรับรายการก็จะเป็น ฯลฯ
- สำหรับ type() คุณสามารถส่งผ่านอาร์กิวเมนต์ตัวเดียวได้ และค่าที่ส่งคืนจะเป็นประเภทคลาสของอาร์กิวเมนต์ที่กำหนด เช่น type(object)
- นอกจากนี้ยังสามารถส่งผ่านสามอาร์กิวเมนต์เพื่อพิมพ์ () เช่น พิมพ์ (ชื่อ ฐาน dict) ในกรณีนี้ จะส่งอ็อบเจ็กต์ประเภทใหม่กลับมาให้คุณ
- Python มีฟังก์ชันในตัวที่เรียกว่า instance() ซึ่งเปรียบเทียบค่ากับประเภทที่กำหนด หากค่าและประเภทที่กำหนดตรงกัน ฟังก์ชันจะส่งคืนค่าจริง มิฉะนั้นจะส่งคืนค่าเท็จ การใช้ isinstance() ช่วยให้คุณสามารถทดสอบสตริง float int รายการ ทูเพิล ดิกชันนารี ชุด คลาส ฯลฯ
- ด้วยการใช้เมธอด isinstance() คุณสามารถทดสอบ string, float, int, list, tuple, dict, set, class ฯลฯ
