Python getattr ()

Metode getattr () atgriež objekta nosauktā atribūta vērtību. Ja tas nav atrasts, tas atgriež funkcijai norādīto noklusējuma vērtību.

Metodes sintakse getattr()ir:

 getattr (objekts, nosaukums (noklusējums))

Iepriekš minētā sintakse ir līdzvērtīga:

 objekta.nosaukums

getattr () parametri

getattr() metode prasa vairākus parametrus:

  • objekts - objekts, kura nosauktā atribūta vērtība ir jāatdod
  • nosaukums - virkne, kas satur atribūta nosaukumu
  • noklusējums (neobligāti) - vērtība, kas tiek atgriezta, ja nosauktais atribūts netiek atrasts

Atgriešanās vērtība no getattr ()

getattr() metode atgriež:

  • norādītā objekta nosauktā atribūta vērtība
  • default, ja nosauktais atribūts nav atrasts
  • AttributeErrorizņēmums, ja nosauktais atribūts nav atrasts un defaultnav definēts

1. piemērs: Kā getattr () darbojas Python?

 class Person: age = 23 name = "Adam" person = Person() print('The age is:', getattr(person, "age")) print('The age is:', person.age)

Rezultāts

 Vecums ir: 23 Vecums: 23 

2. piemērs: getattr (), ja nosauktais atribūts nav atrasts

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

Rezultāts

 Dzimums ir šāds: Male AttributeError: objektam “Persona” nav atribūta “sex” 

Nosauktais dzimuma atribūts klasē Persona nav sastopams. Tātad, izsaucot getattr()metodi ar noklusējuma vērtību Male, tā atgriež Male.

Bet, ja mēs nenorādām nekādu noklusējuma vērtību, ja nosauktais atribūts sex nav atrasts, tas rada AttributeErrorteicienu, ka objektam nav dzimuma atribūta.

Interesanti raksti...