Python setAttr -funksjon

Python setAttr -funksjon
Vi er alle klar over at en objektfunksjon og funksjonskonstruktør kan brukes til å henvise spesifikt til en klassevariabel. SetAtt () -metoden er det eneste andre alternativet til denne. I dynamisk programmering, der variabelnavnet ikke er statisk, er SetAtt () -metoden nyttig. Dot -operatøren er ikke anvendelig i den situasjonen. Ved hjelp av brukerinngangen som illustrasjon, setter den verdien av et objektattributt. En verdi tildeles et objekts attributt ved hjelp av SetAtt () -funksjonen i Python. Den aksepterer et objekt, en streng og en uspesifisert verdi som parametere, men gir ingen utgang. Når vi ønsker å gi et objekt en ny attributt og tilordne en verdi til det, er det nyttig.

Du vil få kunnskap om SetAtt () -metoden til Python i denne artikkelen, mens vi dekker det den oppnår, når vi skal bruke den, og når det er unødvendig. Uansett om attributtet er til stede eller ikke, brukes metoden til å definere et attributts verdi for et objekt.

Syntaks av SetAtt () -funksjonen i Python

Følgende er SetAtt () syntaks som vi distribuerte i et Python -skript:

setattr (set_object, set_variable, set_value)


Objektet.Attributtparameter er satt til lik verdi ved å bruke argumenterens navn på objektet, variabelnavn og verdi. Denne funksjonen kaster ingen unntak fordi noen objektegenskaper kan være av en bestemt type. Det returnerer ingenting til anropsfunksjonen.

Eksempel 1: Program for bruk av SetAtt () -funksjonen

SetAtt () -metoden viser hvordan den objektorienterte programmeringen fremdeles fungerer bra i disse situasjonene og er svært nyttig hvis et objekts attributter kan endres mens den blir brukt. Her er programmet for å demonstrere arbeidet med SetAtt () -funksjonen:

Klasseansatt:
Emp_name = 'Alice'
my_object = ansatt ()
skriv ut ("Før setAttr ansattes navn:", my_object.Emp_name)
setattr (my_object, 'emp_name', 'alice jeo')
skriv ut ("Etter setAttr ansattes navn:", my_object.Emp_name)

I manuset etablerte vi først en klasse som er representert med navnet "Ansatt". I den spesifiserte klassen opprettet vi en klassevariabel som "emp_name". Klassevariabelen “EMP_NAME” er satt med strengverdien som er navnet på den ansatte. Deretter definerte vi et objekt som "my_object" og påkalte klassen "ansatt". Utskriften brukes her for å skrive ut verdien til variabelen “emp_name” før SetAtTR () -funksjonen er distribuert.

Til SetAtTr -funksjonen passerte vi tre innganger: My_obeject, variabelen Navnet “EMP_NAME”, og den modifiserte verdien av variabelen “emp_name”. Deretter, i den siste utskriftserklæringen, skrev vi ut ansattes navn etter å ha brukt SetAtt () -funksjonen.

Følgende er utfallet oppnådd fra forrige skript i Python SetAtt () -funksjonen:

Eksempel 2: Program for bruk av SetAtt () funksjonsegenskap

Her viste vi egenskapen til SetAtt () -funksjonen i Python.

Klassedyr:
Animal_name = 'Cat'
obj1 = dyr ()
trykk ("Før setAttr -navn:", Str (obj1.Animal_name)))
setattr (obj1, 'animal_name', ingen)
setAtt (obj1, 'detalj', 'persiske kattunger')
trykk ("Etter setAttr Animal Name:" + Str (OBJ1.Animal_name)))
trykk ("Etter SetAttr Animal Deail:", STR (OBJ1.detalj))

I forrige skript definerte vi klassen vi har tildelt navnet "Animal". Til klassen "dyr". Vi definerte en variabel som "Animal_name" som er satt med strengverdien til dyrets navn "Cat". Deretter har vi et objekt som "obj1" der klassen "dyr" blir påkalt. Deretter trykket vi objektet ved å passere det i STR -metoden før SetAtt () -funksjonen.

Etter det blir SetAtt () -funksjonen distribuert der "OBJ1" blir bestått. "Animal_name" -variabelen sendes også med verdien "ingen". Her distribuerte vi en annen SetAtt () -funksjon til den nye attributtet og initialiserte den med den nye verdien. Utskriftserklæringen er gitt for å skrive ut objektet etter SetAtTR () -funksjonen.

SetAtTr () -funksjonene før og etter å ha brukt den vises i følgende:

Eksempel 3: Program for å bruke SetAtt () -funksjonen med DICT

Å ha muligheten til å sette mange attributter samtidig er en fordel ved å bruke SetAtTr () -funksjonen. Hvis du fikk en ordbok om et objekts egenskaper, hva ville den inneholde? For å stille dem til de forskjellige attributtene til et objekt, kan du sløyfe over dem.

Klasse MydictClass (objekt):
def __init __ (selv, dict1):
for nøkkel i dict1:
setAtt (self, nøkkel, dict1 [nøkkel])
if __name__ == "__main__":
dict1 = "Student_name": "Edison",
"Student_id": "3278",
"Student_degree": "it"
my_result = MyDictClass (DICT1)
trykk ("Etter konvertering av ordbok til klasse:")
trykk (my_result.Student_name, my_result.Student_id, my_result.Student_degree)
print (type (my_result))

I dette skriptet definerte vi først klassen "MyDictClass". Vi kalte objektet til klassen. Deretter har vi en definisjon av init -metoden som tar "jeget" og "dict1" som argumenter.

Etter det har vi for loop som løkker over hver tast og verdien av den gitte ordboken. Vi distribuerte deretter SetAtt () -funksjonen der selv-, nøkkelen og DICT -verdiene blir lagt til. Deretter, innenfor hovedfunksjonen til dette skriptet, opprettet vi ordboken. Etter det ga vi den ordboken til klassen “MyDictClass” ved hjelp av det nyopprettede objektet - “my_result”. Til slutt trykket vi resultatet.

Eksempel 4: Program for bruk av SetAtt () -funksjon med unntak

Her skal vi konstruere de skrivebeskyttede attributtene for objektet. Hvis vi prøver å bruke SetAtt () -funksjonen for å endre attributtets verdi, blir et unntak hevet.

Klasseprodukt:
def __init __ (selv):
selv-._Funksjon = Ingen
def funksjon (selv):
print ('funksjon kalt')
Returnerer selv._Funksjon
OBJ = Eiendom (funksjon, ingen)
P1 = produkt ()
setAtt (p1, 'obj', 'laptop')

Først har vi klassedefinisjonen som "produkt". Vi definerte init -metoden der jeget som et argument gis til klassen. Variabelen opprettes som en "funksjon" som har et verdier for ingen. Deretter definerte vi funksjonen til forrige variabel, "funksjon".

Etter det opprettet vi et objekt som "OBJ" der vi har eiendomsnavnet "Funksjon". Til eiendomsfunksjonen passerte vi variabelen “funksjon” og dens verdi. SetAtt () -funksjonen påberopes som vi ga P1, OBJ og den nye verdien som kaster unntaket.

Du kan se at følgende unntak blir reist fra forrige skript:

Konklusjon

Denne artikkelen lærte oss hvordan vi kan bruke SetAtt () -funksjonen for å dynamisk stille inn objektattributtene mens en applikasjon kjører. Når egenskapene er ukjente for utvikleren og en API må være fleksibel, er dette en veldig nyttig måte for den objektorienterte programmeringen. Du lærte hvordan du tildeler en verdi til et objekts attributt ved hjelp av Python SetAtt () -funksjonen. Din kunnskap om å definere funksjonen med SetAtt () -funksjonen blir også fjernet. Deretter lærte du hvordan du bruker SetAtt () -metoden mens du bruker den til å stille inn attributtene med en Python -ordbok.