Il metodo hasattr() in Python

|

Nel mondo della programmazione orientata agli oggetti, ci occupiamo di rappresentare o mappare scenari del mondo reale su classi e oggetti. Gli oggetti possono essere pensati come una struttura di classe che mostra gli attributi e il loro comportamento.

A volte possiamo imbatterci in situazioni in cui è necessario verificare l’esistenza di un attributo che è occupato o contenuto in una classe. Lo stesso può essere fatto usando il metodo hasattr () di Python. Questo aiuta a controllare se l’attributo è nella classe.

 Python Metodo Hasattr ()



La classe Python rappresenta gli attributi e il loro comportamento attraverso un oggetto.

Il metodo hasattr () meth od viene utilizzato per verificare se esiste un attributo in una classe.

 hasattr (Classe, attributo) 

hasattr ( ) restituisce un booleano, ovvero True o False, a seconda della presenza dell’attributo nella classe.

Esempio 1:

 Class Info: name = "JournalDev "lang =" Python "site =" Google "print (hasattr (Info,’ lang’)) 

Nell’esempio precedente, l’attributo lang è contenuto nella classe Info. Quindi la funzione hasattr () restituisce True.

Output:

 True 

Esempio 2:

 informazioni sulla classe: name = "JournalDev" lang = "Python" site = "Google" print (hasattr  (Info, ’data’)) 

Come puoi vedere dall’esempio sopra, la funzione restituisce False perché l’attributo data non è definito nella classe.



Output:

 Falso 

Confronto

In Python 2 hasattr ( ) elimina tutte le eccezioni e restituisce False per la condizione.

Ad esempio, se l’attributo specificato è & # 8216; A & # 8217; contenuto nella classe, ma è preoccupato per alcune eccezioni. A questo punto, hasattr () ignorerà tutte le eccezioni e restituirà False anche se l’attributo "A" esiste nella classe .

D’altra parte, in Python 3, hasattr () genera un’eccezione se l’attributo è associato ad alcuni criteri eccezionali.

Esempio: Python 2 con funzione hasattr ()

 Class Info (oggetto): @property def hey (self ): raise SyntaxError def say (self): raise SyntaxError obj = Info () print (hasattr (obj, ’hey’)) print ( hasattr (obj,’ say’)) 

Nel codice sopra, nonostante un errore di sintassi dovuto al decoratore, hasattr () non genera errori, ignora l’eccezione e restituisce False anche se la classe contiene quel particolare attributo.

Esci:

 False True 

Esempio: Python 3 con hasattr ()

Nel codice seguente, hasattr () la funzione solleva un’eccezione a causa di un errore di sintassi con l’attributo & # 8216; ehi & # 8217 ;.

 Class Info (oggetto): @property def hey (self): raise SyntaxError def say (self): raise SyntaxError obj = Info () stampa (hasattr (obj, ’hey’)) stampa (hasattr (obj,’ say’)) 

Output:

 Traceback (ultima chiamata più recente): File "c: usershpappdatalocalprogramspythonpython36libsite-packagesIPythoncoreinteractiveshell.py", riga 3319, in run_code exec (code_obj, self.user_global_ns, self.usert_ns) File "& lusert_ns -20-e14f6e57b66e" " , riga 9, in "modulo" print (hasattr (obj, ’hey’)) File" "ipython-input-20-e14f6e57b66e & gt ; ", riga 4, in hey solleva SyntaxError File" "string" ", riga sconosciuta SyntaxError 



Ci auguriamo che questo articolo ti abbia aiutato a risolvere il problema. Oltre a Il metodo hasattr() in Python, controlla altri argomenti relativi a hasattr.

Vuoi eccellere in Python? Consulta la nostra recensione dei migliori corsi online Python 2022. Se sei interessato alla scienza dei dati, controlla anche come imparare a programmare in R.

A proposito, questo materiale è disponibile anche in altre lingue:



Carlo Lehnman

Rome | 2022-11-28

Forse ci sono altre risposte? Cosa significa esattamente Il metodo hasattr() in Python significa esattamente?. Spero solo che non emerga più

Frank Richtgofen

Tallinn | 2022-11-28

Semplice e chiaro. Grazie per la condivisione. Il mio punto debole è sempre stato il Il metodo hasattr() in Python e altri problemi con il hasattr 😁. Spero solo che non emerga più

Frank Innsbruck

Milan | 2022-11-28

hasattr è tutto un po' confuso 😭 Il metodo hasattr() in Python non è l'unico problema che ho riscontrato. Lo userò nella mia tesi di laurea

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

Common xlabel/ylabel for matplotlib subplots

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

12 answers

NUMPYNUMPY

Flake8: Ignore specific warning for entire file

12 answers

NUMPYNUMPY

glob exclude pattern

12 answers

NUMPYNUMPY

How to avoid HTTP error 429 (Too Many Requests) python

12 answers

NUMPYNUMPY

Python CSV error: line contains NULL byte

12 answers

NUMPYNUMPY

csv.Error: iterator should return strings, not bytes

12 answers

News


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

sin

How to specify multiple return types using type-hints

exp

Printing words vertically in Python

exp

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

cos

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically