type() και ininstance() in Python με παραδείγματα

Τι είναι το type() in Python?

Python έχει μια ενσωματωμένη συνάρτηση που ονομάζεται type() που σας βοηθά να βρείτε τον τύπο κλάσης της μεταβλητής που δίνεται ως είσοδος. Για παράδειγμα, εάν η είσοδος είναι συμβολοσειρά, θα λάβετε την έξοδο ως , για τη λίστα, θα είναι κ.λπ.

Χρησιμοποιώντας την εντολή type(), μπορείτε να περάσετε ένα μεμονωμένο όρισμα και η επιστρεφόμενη τιμή θα είναι ο τύπος κλάσης του ορίσματος που δίνεται, παράδειγμα: type(object).

Είναι επίσης δυνατό να περάσετε τρία ορίσματα στο type(), δηλαδή type(name, bases, dict), σε αυτήν την περίπτωση, θα σας επιστρέψει ένα νέο αντικείμενο τύπου.

Σύνταξη για τον τύπο()

Το type() μπορεί να χρησιμοποιηθεί με δύο τρόπους όπως φαίνεται παρακάτω:

 type(object)
type(namr, bases, dict)

παράμετροι: τύπος (αντικείμενο)

  • αντικείμενο: Αυτή είναι μια υποχρεωτική παράμετρος. Εάν αυτή είναι μόνο η παράμετρος που μεταβιβάζεται στο type(), τότε θα σας επιστρέψει τον τύπο της παραμέτρου.

παράμετροι: τύπος (όνομα, βάσεις, εντολές)

  • όνομα: όνομα της τάξης.
  • βάσεις: (προαιρετικά). Αυτή είναι μια προαιρετική παράμετρος και είναι η βασική κλάση
  • dict: (προαιρετικό). Αυτή είναι μια προαιρετική παράμετρος και είναι ένας χώρος ονομάτων που έχει τον ορισμό της κλάσης.

επιστροφή Αξία

Εάν το αντικείμενο είναι η μόνη παράμετρος που μεταβιβάζεται στην type(), τότε θα σας επιστρέψει τον τύπο του αντικειμένου.

Εάν οι παράμετροι που μεταβιβάζονται στον τύπο είναι τύπος (αντικείμενο, βάσεις, dict), σε αυτήν την περίπτωση, θα επιστρέψει έναν νέο τύπο αντικειμένου.

Παράδειγμα τύπου()

Σε αυτό το παράδειγμα έχουμε μια τιμή συμβολοσειράς, έναν αριθμό , μια τιμή float, έναν μιγαδικό αριθμό, μια λίστα, πλειάδα , dict και set. Θα χρησιμοποιήσουμε τις μεταβλητές με τύπο για να δούμε την έξοδο για καθεμία από αυτές.

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))

Παραγωγή:

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))

Παραγωγή:

<class '__main__.test'>

Παράδειγμα: Χρησιμοποιώντας το όνομα, τις βάσεις και το dict σε type()

Ο τύπος μπορεί επίσης να κληθεί χρησιμοποιώντας τη σύνταξη: type(name, bases, dict).

Οι τρεις παράμετροι που μεταβιβάστηκαν στο type() δηλαδή, όνομα, βάσεις και dict είναι τα στοιχεία που συνθέτουν έναν ορισμό κλάσης. Το όνομα αντιπροσωπεύει το όνομα της κλάσης, οι βάσεις είναι η βασική κλάση και το dict είναι το λεξικό των χαρακτηριστικών κλάσης βάσης.

Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε και τις τρεις παραμέτρους, δηλαδή όνομα, βάσεις και dict in type().

Παράδειγμα:

class MyClass:
  x = 'Hello World'
  y = 50

t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))

Παραγωγή:

<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}

Όταν μεταβιβάζετε και τα τρία ορίσματα στην type() , σας βοηθά να αρχικοποιήσετε νέα κλάση με χαρακτηριστικά κλάσης βάσης.

Τι είναι το instance() στο Python?

Python το instance είναι μέρος του python ενσωματωμένες λειτουργίες. Python Η ininstance() λαμβάνει δύο ορίσματα και επιστρέφει true αν το πρώτο όρισμα είναι μια παρουσία του classinfo που δίνεται ως δεύτερο όρισμα.

Συντακτική παρουσία()

isinstance(object, classtype)

παράμετροι

  • αντικείμενο: Ένα αντικείμενο του οποίου το παράδειγμα συγκρίνετε με τον τύπο κλάσης. Θα επιστρέψει true εάν ο τύπος ταιριάζει διαφορετικά με το false.
  • τύπος κλάσης: Ένας τύπος ή μια κλάση ή μια πλειάδα τύπων ή/και κλάσεων.

Τιμή επιστροφής

Θα επιστρέψει true αν το αντικείμενο είναι μια παρουσία τύπου class και false αν όχι.

Παραδείγματα instance()

Σε αυτή την ενότητα, θα μελετήσουμε διάφορα παραδείγματα για να μάθουμε την ininstance()

Παράδειγμα: ininstance() Έλεγχος ακέραιου αριθμού

Ο παρακάτω κώδικας συγκρίνει την ακέραια τιμή 51 με τον τύπο int. Θα επιστρέψει true it τον τύπο των 51 αντιστοιχιών με int διαφορετικά false.

age = isinstance(51,int)
print("age is an integer:", age)

Παραγωγή:

age is an integer: True

Παράδειγμα: isinstance() Έλεγχος float

Σε αυτό το παράδειγμα θα συγκρίνουμε την τιμή float με τον τύπο float, δηλαδή η τιμή 3.14 θα είναι σύγκριση με τον τύπο float.

pi = isinstance(3.14,float)
print("pi is a float:", pi)

Παραγωγή:

pi is a float: True

Παράδειγμα: ininstance() Έλεγχος συμβολοσειράς

message = isinstance("Hello World",str)
print("message is a string:", message)

Παραγωγή:

message is a string: True

Παράδειγμα: ininstance() Πλειάδα ελέγχου

Ο κωδικός ελέγχει για πλειάδα (1,2,3,4,5) με τύπου πλειάδα. Θα επιστρέψει true αν η είσοδος που δίνεται είναι τύπου tuple και false αν όχι.

my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)

Παραγωγή:

my_tuple is a tuple: True

Παράδειγμα: isinstance() Ορισμός ελέγχου

Ο κώδικας ελέγχει για ένα σύνολο ({1,2,3,4,5}, με σύνολο τύπων. Θα επιστρέψει true εάν η είσοδος που δίνεται είναι τύπου set και false αν όχι.

my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)

Παραγωγή:

my_set is a set: True

Παράδειγμα: έλεγχος λίστας ininstance().

Ο κωδικός ελέγχει για μια λίστα [1,2,3,4,5], με λίστα τύπων. Θα επιστρέψει true αν η είσοδος που δίνεται είναι τύπου list και false αν όχι.

my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)

Παραγωγή:

my_list is a list: True

Παράδειγμα: ininstance() dict check

Ο κωδικός ελέγχει για dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”}, με τύπο dict. Θα επιστρέψει true αν η είσοδος που δίνεται είναι τύπου dict και ψευδής αν όχι.

my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)

Παραγωγή:

my_dict is a dict: True

Παράδειγμα: δοκιμή ininstance() σε μια τάξη

Ο κώδικας δείχνει τον έλεγχο τύπου της κλάσης με την isinstance() . Το αντικείμενο της κλάσης συγκρίνεται με το όνομα της κλάσης μέσα στο ininstance(). Επιστρέφει true αν το αντικείμενο ανήκει στην κλάση και false διαφορετικά.

class MyClass:
    _message = "Hello World"

_class = MyClass()

print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))

Παραγωγή:

_class is a instance of MyClass() True

Διαφορά μεταξύ type() και isinstance() in Python

τύπος() isinstance ()
Python έχει μια ενσωματωμένη συνάρτηση που ονομάζεται type() που σας βοηθά να βρείτε τον τύπο κλάσης της μεταβλητής που δίνεται ως είσοδος. Python έχει μια ενσωματωμένη συνάρτηση που ονομάζεται isinstance() που συγκρίνει την τιμή με τον τύπο που δίνεται. Εάν η τιμή και ο τύπος που δίνεται ταιριάζουν, θα επιστρέψει true διαφορετικά false.
Η τιμή επιστροφής είναι ένα αντικείμενο τύπου Η επιστρεφόμενη τιμή είναι Boolean, δηλαδή 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)

Παραγωγή:

True
False

Σε περίπτωση τύπου, ο έλεγχος υποκατηγορίας δίνει πίσω false.

class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(isinstance(A(), A))
print(isinstance(B(), A))

Παραγωγή:

True
True

Η ininstance() δίνει μια τιμή αλήθειας όταν ελέγχεται με μια υποκλάση.

Σύνοψη

  • Python έχει μια ενσωματωμένη συνάρτηση που ονομάζεται type() που σας βοηθά να βρείτε τον τύπο κλάσης της μεταβλητής που δίνεται ως είσοδος. Για παράδειγμα, εάν η είσοδος είναι συμβολοσειρά, θα λάβετε την έξοδο ως , για τη λίστα, θα είναι κ.λπ.
  • Για type(), μπορείτε να περάσετε ένα μεμονωμένο όρισμα και η επιστρεφόμενη τιμή θα είναι ο τύπος κλάσης του ορίσματος που δίνεται, π.χ. type(object).
  • Είναι επίσης δυνατό να περάσετε τρία ορίσματα στο type(), δηλαδή type(name, bases, dict), σε αυτήν την περίπτωση, θα σας επιστρέψει ένα νέο αντικείμενο τύπου.
  • Python έχει μια ενσωματωμένη συνάρτηση που ονομάζεται instance() που συγκρίνει την τιμή με τον τύπο που δίνεται. Αν η τιμή και ο τύπος που δίνεται ταιριάζουν, θα επιστρέψει true διαφορετικά false. Χρησιμοποιώντας την isinstance(), μπορείτε να ελέγξετε για string, float, int, list, tuple, dict, set, class, κ.λπ.
  • Χρησιμοποιώντας τη μέθοδο isinstance(), μπορείτε να ελέγξετε για string, float, int, list, tuple, dict, set, class, κ.λπ.