พิมพ์() และ 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 ฯลฯ

สรุปโพสต์นี้ด้วย: