Η συνάρτηση type () είτε επιστρέφει τον τύπο του αντικειμένου είτε επιστρέφει ένα νέο αντικείμενο τύπου με βάση τα ορίσματα που έχουν περάσει.
Η type()
συνάρτηση έχει δύο διαφορετικές μορφές:
τύπος (αντικείμενο) τύπος (όνομα, βάσεις, υπαγόρευση)
type () Με μία παράμετρο αντικειμένου
Εάν περάσει ένα αντικείμενο type()
, η συνάρτηση επιστρέφει τον τύπο της.
Παράδειγμα 1: Λήψη τύπου αντικειμένου
numbers_list = (1, 2) print(type(numbers_list)) numbers_dict = (1: 'one', 2: 'two') print(type(numbers_dict)) class Foo: a = 0 foo = Foo() print(type(foo))
Παραγωγή
Εάν πρέπει να ελέγξετε τον τύπο ενός αντικειμένου, είναι προτιμότερο να χρησιμοποιήσετε τη συνάρτηση Python isinstance (). Είναι επειδή η isinstance()
συνάρτηση ελέγχει επίσης εάν το δεδομένο αντικείμενο είναι μια παρουσία της υποκατηγορίας.
type () Με όνομα, βάσεις και παραμέτρους υπαγόρευσης
Εάν περάσουν τρεις παράμετροι type()
, επιστρέφει ένα αντικείμενο νέου τύπου .
Οι τρεις παράμετροι είναι:
Παράμετρος | Περιγραφή |
---|---|
όνομα | όνομα τάξης γίνεται το __name__ χαρακτηριστικό |
βάσεις | μια πλειάδα που αναφέρει την κλάση βάσης. γίνεται το __bases__ χαρακτηριστικό |
υπαγορεύω | ένα λεξικό που είναι ο χώρος ονομάτων που περιέχει ορισμούς για το σώμα της τάξης · γίνεται το __dict__ χαρακτηριστικό |
Παράδειγμα 2: Δημιουργήστε ένα αντικείμενο τύπου
o1 = type('X', (object,), dict(a='Foo', b=12)) print(type(o1)) print(vars(o1)) class test: a = 'Foo' b = 12 o2 = type('Y', (test,), dict(a='Foo', b=12)) print(type(o2)) print(vars(o2))
Παραγωγή
('a': 'Foo', 'b': 12, '__module__': '__main__', '__dict__':, '__weakref__':, '__doc__': Κανένα) ('a': 'Foo', 'b ': 12,' __module__ ':' __main__ ',' __doc__ ': Κανένα)
Στο πρόγραμμα, χρησιμοποιήσαμε τη συνάρτηση Python vars () που επιστρέφει το __dict__
χαρακτηριστικό. __dict__
χρησιμοποιείται για την αποθήκευση των εγγράψιμων χαρακτηριστικών του αντικειμένου.
Μπορείτε εύκολα να αλλάξετε αυτά τα χαρακτηριστικά εάν είναι απαραίτητο. Για παράδειγμα, εάν πρέπει να αλλάξετε το __name__
χαρακτηριστικό του o1 σε 'Z'
, χρησιμοποιήστε:
o1 .__ name = 'Z'