Função python setattr

Função python setattr
Todos estamos cientes de que uma função de objeto e construtor de função podem ser usados ​​para se referir especificamente a uma variável de classe. O método setAtTr () é o único outro alternativo a este. Na programação dinâmica, onde o nome da variável não é estático, o método setAtTr () é útil. O operador de pontos é inaplicável nessa situação. Usando a entrada do usuário como ilustração, ele define o valor de um atributo de objeto. Um valor é atribuído ao atributo de um objeto usando a função setAtTr () em Python. Ele aceita um objeto, uma string e um valor não especificado como parâmetros, mas não fornece nenhuma saída. Quando desejamos dar um novo atributo a um objeto e atribuir um valor a ele, é útil.

Você obterá conhecimento sobre o método setAtTr () de python neste artigo, enquanto cobrimos o que ele realiza, quando empregá -lo e quando é desnecessário. Independentemente de o atributo estar presente ou não, o método é usado para definir o valor de um atributo para um objeto.

Sintaxe da função setAtTr () em python

A seguir, a sintaxe setAtTtr () que implantamos em um script python:

setattr (set_object, set_variable, set_value)


O objeto.O parâmetro do atributo é definido como valor igual usando o nome dos argumentos do objeto, nome da variável e valor. Esta função não joga nenhuma exceção porque qualquer propriedade de objeto pode ser de um determinado tipo. Ele não retorna nada para a função de chamada.

Exemplo 1: Programa de uso da função setAtTr ()

O método setAtTtr () mostra como a programação orientada a objetos ainda funciona bem nessas situações e é altamente útil se os atributos de um objeto puderem mudar enquanto estiver sendo utilizado. Aqui está o programa para demonstrar o funcionamento da função setAtTr ():

funcionário da classe:
Emp_name = 'Alice'
my_object = funcionário ()
print ("Antes do nome do funcionário do setattr:", my_object.Emp_name)
setattr (my_object, 'emp_name', 'Alice Jeo')
print ("Após o nome do funcionário do setattr:", my_object.Emp_name)

No script, primeiro estabelecemos uma classe que é representada com o nome "funcionário". Na classe especificada, criamos uma variável de classe como "emp_name". A variável de classe "EMP_NAME" é definida com o valor da string que é o nome do funcionário. Em seguida, definimos um objeto como "my_object" e invocamos a classe "funcionário". A impressão é utilizada aqui para imprimir o valor da variável "EMP_NAME" antes que a função setAtTr () seja implantada.

Para a função setAtTr, passamos três entradas: my_obeject, o nome da variável "EMP_NAME" e o valor modificado da variável "EMP_NAME". Então, na última declaração de impressão, imprimimos o nome do funcionário depois de usar a função setAtTr ().

A seguir, é apresentado o resultado obtido do script anterior da função python setAtTr ():

Exemplo 2: Programa de uso da propriedade SetAtTtr ()

Aqui, mostramos a propriedade da função setAtTr () em Python.

Animal de classe:
animal_name = 'gato'
obj1 = animal ()
print ("Antes do nome do setattr:", str (obj1.animal_name))
setattr (obj1, 'animal_name', nenhum)
setattr (obj1, 'detalhe', 'gatinhos persas')
print ("Após o nome do animal do setattr:" + str (obj1.animal_name))
Print ("After Setattr Animal Detalhe:", STR (Obj1.detalhe))

No script anterior, definimos a classe para a qual atribuímos o nome "animal". Para a classe "animal". Definimos uma variável como "Animal_Name", que é definida com o valor da string do nome do animal "CAT". Então, temos um objeto como "obj1", onde o "animal" da classe é invocado. Em seguida, imprimimos o objeto passando -o no método STR antes da função setAtTr ().

Depois disso, a função setAtTr () é implantada onde o "obj1" é passado. A variável "animal_name" também é passada com o valor "nenhum". Aqui, implantamos outra função setAtTr () para o novo atributo e o inicializamos com o novo valor. A declaração de impressão é fornecida para imprimir o objeto após a função setAtTr ().

Os resultados da função setAtTtr () antes e depois de utilizá -la são mostrados no seguinte:

Exemplo 3: Programa de uso da função setAtTr () com dicto

Ter a capacidade de definir vários atributos simultaneamente é um benefício de utilizar a função setAtTtr (). Se você tivesse um dicionário de características de um objeto, o que ele continha? Para defini -los para os vários atributos de um objeto, você pode dar um pau sobre eles.

classe mydictclass (objeto):
def __init __ (self, dict1):
Para chave no dict1:
setattr (self, chave, dict1 [key])
Se __name__ == "__main__":
dict1 = "Student_name": "Edison",
"Student_id": "3278",
"Student_degree": "it"
my_result = mydictclass (dict1)
print ("Após a conversão do dicionário em classe:")
Imprima (my_result.Student_name, my_result.Student_id, my_result.Student_degree)
Imprima (tipo (my_result))

Neste script em particular, primeiro definimos a classe “MyDictClass”. Nós chamamos o objeto para a classe. Então, temos uma definição do método init que leva o "eu" e o "dict1" como argumentos.

Depois disso, temos o loop for que loop sobre cada chave e o valor do dicionário dado. Em seguida, implantamos a função setAtTr () onde os valores de si, chave e dict são adicionados. Então, dentro da função principal deste script, criamos o dicionário. Depois disso, passamos esse dicionário para a classe "MyDictClass" com a ajuda do objeto recém -criado - "my_result". No final, imprimimos o resultado.

Exemplo 4: Programa de uso da função setAtTr () com exceção

Aqui, construiremos os atributos somente leitura para o objeto. Se tentarmos usar a função setAtTr () para alterar o valor do atributo, uma exceção é elevada.

Produto de classe:
def __init __ (self):
auto._Function = Nenhum
Def function (self):
print ('função chamada')
retornar a si mesmo._Função
obj = propriedade (função, nenhum)
P1 = Produto ()
setattr (p1, 'obj', 'laptop')

Primeiro, temos a definição de classe como "produto". Definimos o método init em que o eu como um argumento é fornecido à classe. A variável é criada como uma "função" que tem um valor definido para nenhum. Em seguida, definimos a função da variável anterior, "função".

Depois disso, criamos um objeto como "OBJ", onde temos o nome da propriedade "função". Para a função de propriedade, passamos a variável "função" e seu valor. A função setAtTr () é invocada para a qual fornecemos o P1, OBJ e o novo valor que lança a exceção.

Você pode ver que a seguinte exceção é levantada do script anterior:

Conclusão

Este artigo nos ensinou a utilizar a função setAtTr () para definir dinamicamente os atributos do objeto enquanto um aplicativo estiver em execução. Quando as propriedades são desconhecidas para o desenvolvedor e uma API precisa ser flexível, essa é uma maneira altamente útil para a programação orientada a objetos. Você aprendeu a atribuir um valor ao atributo de um objeto usando a função Python setAtTr (). Seu conhecimento de definir a função com a função setAtTr () também é liberado. Em seguida, você aprendeu a usar o método setAtTr () enquanto o usava para definir os atributos com um dicionário Python.