Meetod getattr () tagastab objekti nimelise atribuudi väärtuse. Kui seda ei leita, tagastab funktsioonile antud vaikeväärtuse.
Meetodi süntaks getattr()
on:
getattr (objekt, nimi (vaikimisi))
Ülaltoodud süntaks on samaväärne järgmisega:
objekti.nimi
getattr () parameetrid
getattr()
meetod võtab mitu parameetrit:
- objekt - objekt, mille nimelise atribuudi väärtus tagastatakse
- nimi - string, mis sisaldab atribuudi nime
- default (valikuline) - väärtus, mis tagastatakse, kui nimetatud atribuuti ei leita
Tagastusväärtus väärtuselt getattr ()
getattr()
meetod tagastab:
- antud objekti nimelise atribuudi väärtus
default
, kui nimega atribuuti ei leitudAttributeError
erand, kui nimega atribuuti ei leita jadefault
pole määratletud
Näide 1: Kuidas getattr () Pythonis töötab?
class Person: age = 23 name = "Adam" person = Person() print('The age is:', getattr(person, "age")) print('The age is:', person.age)
Väljund
Vanus on: 23 Vanus on: 23
Näide 2: getattr (), kui nimega atribuuti ei leita
class Person: age = 23 name = "Adam" person = Person() # when default value is provided print('The sex is:', getattr(person, 'sex', 'Male')) # when no default value is provided print('The sex is:', getattr(person, 'sex'))
Väljund
Sugu on: Mees AtribuutError: Objektil 'Isik' pole atribuuti 'sugu'
Nimetatud atribuut sugu klassis Isik puudub. Nii getattr()
et vaikeväärtusega meetodi helistamisel Male
tagastatakse mees.
Kuid kui me ei anna vaikeväärtust, siis kui nimetatud atribuuti sugu ei leita, tekitab see AttributeError
ütluse, et objektil pole soo atribuuti.