„Python“

„Python getattr“ () funkcija

„Python getattr“ () funkcija

Didžioji „Python“ integruotų modulių, funkcijų ir teiginių įvairovė padeda programuotojams atlikti įvairias užduotis. Funkcija getattr () yra „Python“ integruota funkcija, leidžianti programuotojams pasiekti objekto atributo vertę. Jei reikšmė nerandama, funkcija getattar () grąžina numatytąją vertę. Tai yra priežastis, kodėl funkcija getattr () dažniausiai naudojama norint pasiekti objektų atributų reikšmes. Šiame straipsnyje bus pateiktas išsamus getattr () funkcijos paaiškinimas su keliais pavyzdžiais.

Sintaksė

Prieš pereidami prie funkcijos getattr () įgyvendinimo, pirmiausia aptarsime jos sintaksę. Funkcijos getattr () sintaksė yra tokia:

getattr (objekto_vardas, atributo_pavadinimas, defalut_value)

Funkcijoje „getattr ()“ argumentai yra trys:
objekto_vardas: Objekto, kurio atributą turime pasiekti, pavadinimas.
atributo_pavadinimas: Atributo, kurį turime pasiekti, pavadinimas.
Numatytoji reikšmė: Numatytoji vertė, kuri grąžinama, kai atributas nerandamas.

Jei vardo atributas nerastas ir mes neapibrėžiame default_value, funkcija getattar () kelia išimtį AttributeError.

Pavyzdžiai

Dabar apžvelgsime keletą pavyzdžių, naudodami funkciją getattr (). Mes sukūrėme mokinių klasę ir apibrėžėme keletą šios klasės atributų. Šiuos atributus pasiekiame naudodami funkciją getattar ().

# mokinių klasės sukūrimas
klasės mokinys:
#defining name atributas
vardas = "Jonas"
#defining el. pašto atributas
paštas = "[el. paštas apsaugotas]"
# Studentų klasės objekto sukūrimas
std_obj = Studentas ()
#now std_obj yra mūsų objektas
#accessing vardo atributas
spausdinti ("Pavadinimo atributo reikšmė yra:", getattr (std_obj, 'vardas'))
#accessing el. pašto atributas
spausdinti ("El. pašto atributo reikšmė yra:", getattr (std_obj, 'email'))

Rezultatas

Funkcija getattr () sėkmingai grąžino atributo reikšmes.

Dabar bandysime pasiekti neapibrėžtą atributą. Apibrėžsime numatytąją šio trūkstamo atributo vertę.

# mokinių klasės sukūrimas
klasės mokinys:
#defining name atributas
vardas = "Jonas"
#defining el. pašto atributas
paštas = "[el. paštas apsaugotas]"
# Studentų klasės objekto sukūrimas
std_obj = Studentas ()
#now std_obj yra mūsų objektas
#accessing amžiaus atributas
spausdinti ("Amžius yra:", getattr (std_obj, 'amžius', 'Virš 20'))

Apibrėžta vertė yra „virš 20“.

Rezultatas

Jei trūksta „amžiaus“ atributo, apibrėžta reikšmė atspausdinama.

Jei reikšmė neapibrėžta, funkcija getattr () sukels išimtį „AttributeError“. Pažiūrėkime to pavyzdį.

# mokinių klasės sukūrimas
klasės mokinys:
#defining name atributas
vardas = "Jonas"
#defining el. pašto atributas
paštas = "[el. paštas apsaugotas]"
# Studentų klasės objekto sukūrimas
std_obj = Studentas ()
#now std_obj yra mūsų objektas
#accessing amžiaus atributas
spausdinti ("Amžius yra:", getattr (std_obj, 'amžius'))

Rezultatas

Norėdami pasiekti reikšmes, taip pat galite naudoti funkciją getattr () su namedtuple. „Namedtuple“ yra žodyno tipo sudėtinis rodinys, tačiau jo reikšmes galite pasiekti naudodami funkciją getattar (). „Namedtuple“ yra kolekcijų modulio klasė. Įgyvendinkime pavadintą paketą ir pasieksime reikšmes naudodami funkciją getattr (). Kuriame pavadintą mokinį studentui.

#importuoti kolekcijų modulį
importuoti kolekcijas
#creating theuptuple studentui
# vardas ir amžius yra raktai
Studentas = kolekcijos.namedtuple ('Studentas', ['vardas', 'amžius'])
# sukurti naują mokytoją ir pridėti vertybių
std = Studentas („Jonas“, 21)
spausdinti ("Pavadinimas yra:", getattr (standartinis, "vardas"))
spausdinti ("Amžius yra:", getattr (standartinis, "amžius"))

Rezultatas

Išvada

Funkcija getattar () yra įmontuota „Python“ funkcija, kuri grąžina objekto atributo vertę. Pagrindinė funkcijos getattr () naudojimo priežastis yra ta, kad ji leidžia lengvai pasiekti atributo vertę naudojant atributo pavadinimą. Atributo pavadinimas apibrėžiamas kaip eilutė, o vertę gauname naudodamiesi funkcija getattar (). Taip pat galima apibrėžti trūkstamo atributo vertę. Perskaitę šį straipsnį, tikimės, sužinojote daugiau apie tai, kaip naudoti „Python getattar“ () funkciją.

„Battle for Wesnoth“ pamoka
„Battle for Wesnoth“ yra vienas populiariausių atvirojo kodo strateginių žaidimų, kurį šiuo metu galite žaisti. Šis žaidimas ne tik buvo kuriamas laba...
0 A.D. Pamoka
Iš daugybės strateginių žaidimų 0 A.D. sugeba išsiskirti kaip išsamus pavadinimas ir labai gilus, taktinis žaidimas, nepaisant to, kad yra atviro kodo...
„Unity3D“ pamoka
Įvadas į „Unity 3D“ „Unity 3D“ yra galingas žaidimų kūrimo variklis. Tai yra daugiašalė platforma, kuri leidžia kurti žaidimus mobiliesiems, interneti...