La funzione type () restituisce il tipo dell'oggetto o restituisce un nuovo tipo di oggetto in base agli argomenti passati.
La type()
funzione ha due diverse forme:
tipo (oggetto) tipo (nome, basi, dict)
type () con un parametro oggetto singolo
Se viene passato un singolo oggetto type()
, la funzione restituisce il suo tipo.
Esempio 1: ottieni il tipo di un oggetto
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))
Produzione
Se hai bisogno di controllare il tipo di un oggetto, è meglio usare invece la funzione isinstance () di Python. È perché la isinstance()
funzione controlla anche se l'oggetto dato è un'istanza della sottoclasse.
type () Con nome, basi e parametri dict
Se vengono passati tre parametri type()
, restituisce un nuovo tipo di oggetto.
I tre parametri sono:
Parametro | Descrizione |
---|---|
nome | un nome di classe; diventa l' __name__ attributo |
basi | una tupla che specifica la classe base; diventa l' __bases__ attributo |
dict | un dizionario che è lo spazio dei nomi contenente le definizioni per il corpo della classe; diventa l' __dict__ attributo |
Esempio 2: creare un oggetto di tipo
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))
Produzione
('a': 'Foo', 'b': 12, '__module__': '__main__', '__dict__':, '__weakref__':, '__doc__': Nessuno) ('a': 'Foo', 'b ': 12,' __module__ ':' __main__ ',' __doc__ ': Nessuno)
Nel programma abbiamo utilizzato la funzione Python vars () che restituisce l' __dict__
attributo. __dict__
viene utilizzato per memorizzare gli attributi scrivibili dell'oggetto.
È possibile modificare facilmente questi attributi se necessario. Ad esempio, se è necessario modificare l' __name__
attributo di o1 in 'Z'
, utilizzare:
o1 .__ nome = 'Z'