Fonction memoryview() de Python
Fonctions intégrées de Python3
memoryview()C'est une fonction intégrée de Python utilisée pour créer une vue mémoire.
memoryview renvoie un objet "vue mémoire", qui permet au code Python d'accéder au tampon de données interne d'un objet sans copier les données. Cela peut améliorer les performances lors du traitement de grandes quantités de données binaires.
Définition du mot: memoryviewCela signifie "vue mémoire", qui est un objet qui accède à un tampon de données.
Syntaxe de base et paramètres
Format de syntaxe
memoryview(obj)
Description du paramètre
- Paramètre obj:
- Type : Un objet qui implémente le protocole tampon (tel que bytes, bytearray)
- Description : L'objet pour lequel créer une vue mémoire.
Description de la fonction
- Valeur de retour: Renvoie un objet memoryview.
- Fonctionnalités: Permet un accès direct aux données à l'intérieur de l'objet sans copie.
Exemples
Exemple 1 : Création d'un memoryview
Exemple
# Créer à partir de bytearray
data = bytearray(b"Hello")
m = memoryview(data)
print(m) # Sortie : <memory at 0x...>
# Créer à partir de bytes
data = b"World"
m = memoryview(data)
print(m[0]) # Sortie : 87 (code ASCII de W)
# Accéder à plusieurs octets
print(m[0:3]) # Sortie : <memory at 0x...>
data = bytearray(b"Hello")
m = memoryview(data)
print(m) # Sortie : <memory at 0x...>
# Créer à partir de bytes
data = b"World"
m = memoryview(data)
print(m[0]) # Sortie : 87 (code ASCII de W)
# Accéder à plusieurs octets
print(m[0:3]) # Sortie : <memory at 0x...>
Sortie attendue :
<memory at 0x104174c40> 87 <memory at 0x104174c40>
Explication du code :
- Une memoryview peut être créée à partir de bytes ou bytearray.
- Elle prend en charge les opérations d'indexation et de découpage.
Exemple 2 : Modification des données (objets mutables uniquement)
Exemple
# memoryview peut modifier directement les données sous-jacentes
data = bytearray(b"Hello")
m = memoryview(data)
# Modifier les données sous-jacentes
m[0] = 74 # 'J'
print(data) # Sortie : bytearray(b'Jello')
# Modifier par découpage
m[1:5] = b"abcd"
print(data) # Sortie : bytearray(b'Jabcd')
# Format de type C
data = b"\x01\x02\x03\x04"
m = memoryview(data)
print(m.tobytes()) # Sortie : b'\x01\x02\x03\x04'
data = bytearray(b"Hello")
m = memoryview(data)
# Modifier les données sous-jacentes
m[0] = 74 # 'J'
print(data) # Sortie : bytearray(b'Jello')
# Modifier par découpage
m[1:5] = b"abcd"
print(data) # Sortie : bytearray(b'Jabcd')
# Format de type C
data = b"\x01\x02\x03\x04"
m = memoryview(data)
print(m.tobytes()) # Sortie : b'\x01\x02\x03\x04'
Sortie attendue :
bytearray(b'Jello') bytearray(b'Jabcd') b'\x01\x02\x03\x04'
memoryview permet une modification directe des données sous-jacentes, ce qui est très efficace lors du traitement de grandes quantités de données binaires.
Fonctions intégrées de Python3
Autres extensions