Propriétés intégrées de Python

Propriétés intégrées de Python

1. Attribut __name__

1. Fonction :

L'attribut __name__ est un attribut intégré en Python qui indique le nom du module actuel. Lorsqu'un module est exécuté directement, la valeur de son attribut __name__ est "_ main_ " ; lorsqu'un module est importé par d'autres modules, la valeur de son attribut __name__ est le nom du module.

2. Exemple de code :

if __name__ == "__main__":
    print("This module is running directly.")
else:
    print("This module is imported by other modules.")

2. Attribut __doc__

1. Fonction :

L'attribut __doc__ est un autre attribut intégré en Python utilisé pour obtenir la chaîne de documentation (docstring) d'un objet. Les chaînes de document sont des informations descriptives pour des objets tels que des fonctions, des classes, des modules, etc., et peuvent être obtenues en accédant à l'attribut __doc__.

2. Exemple de code :

def add(x, y):
    """
    This function takes two arguments and returns their sum.
    """
    return x + y

print(add.__doc__)

3. Attribut __class__

1. Fonction :

L'attribut __class__ est un attribut intégré des classes en Python, utilisé pour obtenir la classe à laquelle appartient un objet. En accédant à l'attribut __class__, vous pouvez obtenir la classe de l'objet et appeler d'autres propriétés et méthodes de la classe.

2. Exemple de code :

class Person:
    def __init__(self, name):
        self.name = name
      
person = Person("Alice")
print(person.__class__.__name__)  # 输出:"Person"

4. Attribut __file__

1. Fonction :

L'attribut __file__ est un attribut intégré du module en Python, utilisé pour obtenir le chemin du fichier correspondant au module. En accédant à l'attribut __file__, vous pouvez obtenir le chemin absolu ou relatif vers le fichier du module.

2. Exemple de code :

import os

print(os.path.abspath(__file__))  # 输出:当前模块文件的绝对路径

5. Attribut __slots__

1. Fonction :

L'attribut __slots__ est un attribut intégré des classes en Python, utilisé pour limiter les attributs pouvant être ajoutés dynamiquement à une instance. En définissant l'attribut __slots__ dans une classe, vous pouvez limiter les instances à n'avoir que des attributs spécifiés, économisant ainsi de l'espace mémoire.

2. Exemple de code :

class Person:
    __slots__ = ["name", "age"]

person = Person()
person.name = "Alice"  # 正确
person.age = 25  # 正确
person.gender = "female"  # 错误,__slots__不包含"gender"属性

6. Attributs __getitem__ et __setitem__

1. Fonction :

__getitem__ et __setitem__ sont des méthodes magiques en Python, utilisées pour implémenter des opérations d'accès à l'index et d'affectation sur des objets. En définissant ces deux propriétés, l'objet est accessible comme une liste ou un dictionnaire.

2. Exemple de code :

class MyList:
    def __init__(self, *args):
        self.data = list(args)
  
    def __getitem__(self, index):
        return self.data[index]
  
    def __setitem__(self, index, value):
        self.data[index] = value

my_list = MyList(1, 2, 3, 4, 5)
print(my_list[0])  # 输出:1
my_list[0] = 10
print(my_list[0])  # 输出:10

7. Attribut __len__

1. Fonction :

L'attribut __len__ est une méthode magique en Python utilisée pour obtenir la longueur ou la taille d'un objet. En définissant l'attribut __len__, l'objet peut avoir les fonctionnalités de la fonction len().

2. Exemple de code :

class MyList:
    def __init__(self, *args):
        self.data = list(args)
  
    def __len__(self):
        return len(self.data)

my_list = MyList(1, 2, 3, 4, 5)
print(len(my_list))  # 输出:5

8. Attributs __iter__ et __next__

1. Fonction :

Les attributs __iter__ et __next__ sont deux méthodes magiques du protocole itérateur en Python, utilisées pour implémenter la fonction d'itération des objets. En définissant ces deux propriétés, vous permettez à l'objet d'être itéré à l'aide d'une boucle for.

2. Exemple de code :

class MyRange:
    def __init__(self, start, end):
        self.start = start
        self.end = end
  
    def __iter__(self):
        return self
  
    def __next__(self):
        if self.start >= self.end:
            raise StopIteration
        current = self.start
        self.start += 1
        return current

my_range = MyRange(1, 5)
for num in my_range:
    print(num)  # 输出:1 2 3 4

Ce qui précède est une explication détaillée des attributs intégrés dans le didacticiel avancé Python, notamment _ name_ , _ doc_ , _ class_ , _ file_ , _ slots_ , _ getitem_ , _ setitem_ , _ len_ , __iter__ et __next__ et d'autres attributs. Ils jouent un rôle important dans différents scénarios et problèmes.

Catalogue général de "Décomposition de lignée AUTOSAR (chaîne d'outils ETAS)"

Guess you like

Origin blog.csdn.net/PlutoZuo/article/details/132849089