Fonction setattr() de Python
Fonctions intégrées de Python3
setattr()est une fonction intégrée en Python utilisée pour définir les attributs d'un objet.
Contrairement à l'utilisation directe de la notation point (.) pour l'affectation,setattr()il vous permet de définir dynamiquement les attributs d'un objet via des chaînes de caractères. C'est très utile lorsque vous devez définir des attributs en fonction de noms de variables ou gérer des attributs inconnus.
Définition du mot: setattrOuiset attributeabréviation de "définir l'attribut".
Syntaxe de base et paramètres
Format de syntaxe
setattr(obj, name, value)
Description du paramètre
- Paramètre obj:
- Type : Tout objet
- Description : L'objet dont l'attribut doit être défini.
- Nom du paramètre:
- Type : String
- Description : Le nom de l'attribut à définir (sous forme de chaîne).
- Valeur du paramètre:
- Type : Toute valeur
- Description : La valeur à définir.
Description de la fonction
- Valeur de retour: Aucune valeur de retour (renvoie
None)。 - Fonction correspondante: Utilisée avec
getattr()conjointement avec la fonction,getattrutilisée pour obtenir des attributs.
Exemples
Exemple 1 : Utilisation de base
Exemple
class Person:
pass
# Créer un objet
p = Person()
# Utiliser setattr pour définir des attributs
setattr(p, 'name', 'Tom')
setattr(p, 'age', 20)
setattr(p, 'city', 'Beijing')
# Vérifier que l'attribut a été défini
print(p.name) # Sortie: Tom
print(p.age) # Sortie : 20
print(p.city) # Sortie : Beijing
# Utiliser getattr pour obtenir des attributs
print(getattr(p, 'name')) # Sortie : Tom
Sortie attendue :
Tom 20 Beijing Tom
Analyse du code :
setattr(obj, 'name', 'Tom')Équivalent àobj.name = 'Tom'。- Le nom de l'attribut est passé sous forme de chaîne, ce qui permet une définition dynamique.
- Peut être utilisé avec
getattr()ensemble.
Exemple 2 : Définition dynamique d'attributs
Exemple
pass
# Définir dynamiquement plusieurs attributs
student = Student()
fields = ['name', 'age', 'grade', 'school']
values = ['Lily', 18, 'A', 'MIT']
for field, value in zip(fields, values):
setattr(student, field, value)
# Afficher tous les attributs
for field in fields:
print(f"{field}: {getattr(student, field)}")
# Définir un attribut inexistant
setattr(student, 'major', 'Computer Science')
print(student.major) # Sortie : Computer Science
Sortie attendue :
name: Lily age: 18 grade: A school: MIT Computer Science
Analyse du code :
- Plusieurs attributs peuvent être définis dynamiquement via une boucle.
- setattr peut ajouter de nouveaux attributs à un objet.
- Cela est utile lors de la gestion de fichiers de configuration ou de saisies utilisateur.
Exemple 3 : Utilisation de __dict__
Exemple
class Car:
def __init__(self):
self.brand = "Toyota"
car = Car()
print(car.__dict__) # Sortie : {'brand': 'Toyota'}
# Utiliser setattr pour ajouter des attributs
setattr(car, 'model', 'Camry')
setattr(car, 'year', 2024)
print(car.__dict__) # Sortie : {'brand': 'Toyota', 'model': 'Camry', 'year': 2024}
# Vérifier si l'attribut existe
if hasattr(car, 'brand'):
print(f"Marque : {getattr(car, 'brand')}")
Sortie attendue :
{'brand': 'Toyota'}
{'brand': 'Toyota', 'model': 'Camry', 'year': 2024}
品牌: Toyota
setattr()Généralement utilisé avecgetattr()、hasattr()、delattr()ensemble, formant une boîte à outils complète pour les opérations sur les attributs.
Fonctions intégrées de Python3
Autres extensions