1
0
Fork 0

"Data Model" translation - Méthodes spéciales.

This commit is contained in:
Christophe Nanteuil 2018-04-14 17:00:52 +02:00
parent a288cd7d46
commit 723a4fd7a6
1 changed files with 228 additions and 6 deletions

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-23 09:03+0100\n"
"PO-Revision-Date: 2018-04-09 23:05+0200\n"
"PO-Revision-Date: 2018-04-14 16:10+0200\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -1852,7 +1852,7 @@ msgstr ""
#: ../Doc/reference/datamodel.rst:1075
msgid "Special method names"
msgstr ""
msgstr "Méthodes spéciales"
#: ../Doc/reference/datamodel.rst:1081
msgid ""
@ -1867,6 +1867,17 @@ msgid ""
"appropriate method is defined (typically :exc:`AttributeError` or :exc:"
"`TypeError`)."
msgstr ""
"Une classe peut implémenter certaines opérations que l'on invoque par une "
"syntaxe spéciale (telles que les opérations arithmétiques ou la découpe) en "
"définissant des méthodes aux noms particuliers. C'est l'approche utilisée "
"par Python pour la :dfn:`surcharge d'opérateur`, permettant à une classe de "
"définir son propre comportement vis-à-vis des opérateurs du langage. Par "
"exemple, si une classe définit une méthode :meth:`__getitem__` et que ``x`` "
"est une instance de cette classe, alors ``x[i]`` est globalement équivalent "
"à ``type(x).__getitem__(x, i)``. Sauf lorsque c'est mentionné, toute "
"tentative d'appliquer une opération alors que la méthode appropriée n'est "
"pas définie lève une exception (typiquement :exc:`AttributeError` ou :exc:"
"`TypeError`)."
#: ../Doc/reference/datamodel.rst:1091
msgid ""
@ -1876,6 +1887,11 @@ msgid ""
"instances will raise a :exc:`TypeError` (without falling back to :meth:"
"`__getitem__`). [#]_"
msgstr ""
"Définir une méthode spéciale à ``None`` indique que l'opération "
"correspondante n'est pas disponible. Par exemple, si une classe assigne "
"``None`` à :meth:`__iter__`, la classe n'est pas itérable et appeler :func:"
"`iter` sur une instance lève :exc:`TypeError` (sans se replier sur :meth:"
"`__getitem__`) [#]_."
#: ../Doc/reference/datamodel.rst:1097
msgid ""
@ -1886,10 +1902,16 @@ msgid ""
"sense. (One example of this is the :class:`~xml.dom.NodeList` interface in "
"the W3C's Document Object Model.)"
msgstr ""
"Lorsque vous implémentez une classe qui émule un type natif, il est "
"important que cette émulation n'implémente que ce qui fait sens pour l'objet "
"qui est modélisé. Par exemple, la recherche d'éléments individuels d'une "
"séquence peut faire sens, mais pas l'extraction d'une tranche (un exemple "
"est l'interface de :class:`~xml.dom.NodeList` dans le modèle objet des "
"documents W3C)."
#: ../Doc/reference/datamodel.rst:1108
msgid "Basic customization"
msgstr ""
msgstr "Personnalisation de base"
#: ../Doc/reference/datamodel.rst:1114
msgid ""
@ -1900,6 +1922,13 @@ msgid ""
"(the call to the class). The return value of :meth:`__new__` should be the "
"new object instance (usually an instance of *cls*)."
msgstr ""
"Appelée pour créer une nouvelle instance de la classe *cls*. La méthode :"
"meth:`__new__` est statique (c'est un cas particulier, vous n'avez pas "
"besoin de la déclarer comme telle) qui prend comme premier argument la "
"classe pour laquelle on veut créer une instance. Les autres arguments sont "
"ceux passés à l'expression de l'objet constructeur (l'appel à la classe). La "
"valeur de retour de :meth:`__new__` doit être l'instance du nouvel objet "
"(classiquement une instance de *cls*)."
#: ../Doc/reference/datamodel.rst:1121
msgid ""
@ -1908,6 +1937,10 @@ msgid ""
"with appropriate arguments and then modifying the newly-created instance as "
"necessary before returning it."
msgstr ""
"Une implémentation typique crée une nouvelle instance de la classe en "
"invoquant la méthode :meth:`__new__` de la superclasse à l'aide de ``super()."
"__new__(cls[, ...])`` avec les arguments adéquats, puis modifie l'instance "
"nouvellement créée en tant que de besoin avant de la renvoyer."
#: ../Doc/reference/datamodel.rst:1126
msgid ""
@ -1916,12 +1949,18 @@ msgid ""
"*self* is the new instance and the remaining arguments are the same as were "
"passed to :meth:`__new__`."
msgstr ""
"Si :meth:`__new__` renvoie une instance de *cls*, alors la méthode :meth:"
"`__init__` de la nouvelle instance sera invoquée avec "
"``__init__(self[, ...])`` où *self* est la nouvelle instance et les autres "
"arguments sont les mêmes que ceux passés à :meth:`__new__`."
#: ../Doc/reference/datamodel.rst:1131
msgid ""
"If :meth:`__new__` does not return an instance of *cls*, then the new "
"instance's :meth:`__init__` method will not be invoked."
msgstr ""
"Si :meth:`__new__` ne renvoie pas une instance de *cls*, alors la méthode :"
"meth:`__init__` de la nouvelle instance ne sera pas invoquée."
#: ../Doc/reference/datamodel.rst:1134
msgid ""
@ -1930,6 +1969,10 @@ msgid ""
"commonly overridden in custom metaclasses in order to customize class "
"creation."
msgstr ""
"L'objectif de :meth:`__new__` est principalement d'autoriser les sous-"
"classes de types immuables (comme int, str ou tuple) à particulariser la "
"création des instances. Elle est aussi souvent surchargée dans les "
"métaclasses pour particulariser la création des classes."
#: ../Doc/reference/datamodel.rst:1143
msgid ""
@ -1940,6 +1983,13 @@ msgid ""
"ensure proper initialization of the base class part of the instance; for "
"example: ``super().__init__([args...])``."
msgstr ""
"Appelée après la création de l'instance (par :meth:`__new__`), mais avant le "
"retour vers l'appelant. Les arguments sont ceux passés à l'expression du "
"constructeur de classe. Si la classe de base possède une méthode :meth:"
"`__init__`, la méthode :meth:`__init__` de la classe dérivée, si elle "
"existe, doit être explicitement appelée pour assurer une initialisation "
"correcte de la partie classe de base de l'instance ; par exemple : ``super()."
"__init__([args...])``."
#: ../Doc/reference/datamodel.rst:1150
msgid ""
@ -1948,6 +1998,10 @@ msgid ""
"it), no non-``None`` value may be returned by :meth:`__init__`; doing so "
"will cause a :exc:`TypeError` to be raised at runtime."
msgstr ""
"Comme :meth:`__new__` et :meth:`__init__` travaillent ensemble pour créer "
"des objets (:meth:`__new__` pour le créer, :meth:`__init__` pour le "
"particulariser), :meth:`__init__` ne doit pas renvoyer de valeur``None`` ; "
"sinon une exception :exc:`TypeError` est levée à l'exécution."
#: ../Doc/reference/datamodel.rst:1163
msgid ""
@ -1957,6 +2011,11 @@ msgid ""
"explicitly call it to ensure proper deletion of the base class part of the "
"instance."
msgstr ""
"Appelée au moment où une instance est sur le point d'être détruite. On "
"l'appelle aussi finaliseur ou (improprement) destructeur. Si une classe de "
"base possède une méthode :meth:`__del__`, la méthode :meth:`__del__` de la "
"classe dérivée, si elle existe, doit explicitement l'appeler pour s'assurer "
"de l'effacement correct de la partie classe de base de l'instance."
#: ../Doc/reference/datamodel.rst:1169
msgid ""
@ -1967,12 +2026,20 @@ msgid ""
"about to be destroyed; the current :term:`CPython` implementation only calls "
"it once."
msgstr ""
"Il est possible (mais pas recommandé) que la méthode :meth:`__del__` retarde "
"la destruction de l'instance en créant une nouvelle référence vers cet "
"objet. Python appelle ceci la *résurrection* d'objet. En fonction de "
"l'implémentation, :meth:`__del__` peut être appelée une deuxième fois au "
"moment où l'objet ressuscité va être détruit ; l'implémentation actuelle de :"
"term:`CPython` ne l'appelle qu'une fois."
#: ../Doc/reference/datamodel.rst:1176
msgid ""
"It is not guaranteed that :meth:`__del__` methods are called for objects "
"that still exist when the interpreter exits."
msgstr ""
"Il n'est pas garanti que soient appelées les méthodes :meth:`__del__` des "
"objets qui existent toujours quand l'interpréteur termine."
#: ../Doc/reference/datamodel.rst:1181
msgid ""
@ -1980,10 +2047,13 @@ msgid ""
"the reference count for ``x`` by one, and the latter is only called when "
"``x``'s reference count reaches zero."
msgstr ""
"``del x`` n'appelle pas directement ``x.__del__()`` --- il décrémente le "
"compteur de références de ``x``. La méthode *del* n'est appelée que quand le "
"compteur de références de ``x`` atteint zéro."
#: ../Doc/reference/datamodel.rst:1196
msgid "Documentation for the :mod:`gc` module."
msgstr ""
msgstr "Documentation du module :mod:`gc`."
#: ../Doc/reference/datamodel.rst:1200
msgid ""
@ -1991,6 +2061,9 @@ msgid ""
"invoked, exceptions that occur during their execution are ignored, and a "
"warning is printed to ``sys.stderr`` instead. In particular:"
msgstr ""
"En raison des conditions particulières qui règnent quand :meth:`__del__` est "
"appelée, les exceptions levées pendant son exécution sont ignorées et, à la "
"place, un avertissement est affiché sur ``sys.stderr``. En particulier :"
#: ../Doc/reference/datamodel.rst:1204
msgid ""
@ -2000,6 +2073,12 @@ msgid ""
"may already be taken by the code that gets interrupted to execute :meth:"
"`__del__`."
msgstr ""
":meth:`__del__` peut être invoquée quand du code arbitraire est en cours "
"d'exécution, et ce dans n'importe quel thread. Si :meth:`__del__` a besoin "
"de poser un verrou ou d'accéder à tout autre ressource bloquante, elle peut "
"provoquer un blocage mutuel (*deadlock* en anglais) car la ressource peut "
"être déjà utilisée par le code qui est interrompu pour exécuter la méthode :"
"meth:`__del__`."
#: ../Doc/reference/datamodel.rst:1210
msgid ""
@ -2011,6 +2090,15 @@ msgid ""
"such globals exist, this may help in assuring that imported modules are "
"still available at the time when the :meth:`__del__` method is called."
msgstr ""
":meth:`__del__` peut être exécutée pendant que l'interpréteur se ferme. En "
"conséquence, les variables globales auxquelles elle souhaite accéder (y "
"compris les autres modules) peuvent déjà être détruites ou assignées à "
"``None``. Python garantit que les variables globales dont le nom commence "
"par un tiret bas sont supprimées de leur module avant que les autres "
"variables globales ne le soient ; si aucune autre référence vers ces "
"variables globales n'existe, cela peut aider à s'assurer que les modules "
"importés soient toujours accessibles au moment où la méthode :meth:`__del__` "
"est appelée."
#: ../Doc/reference/datamodel.rst:1225
msgid ""
@ -2023,12 +2111,24 @@ msgid ""
"`__repr__` but not :meth:`__str__`, then :meth:`__repr__` is also used when "
"an \"informal\" string representation of instances of that class is required."
msgstr ""
"Appelée par la fonction native :func:`rep` pour calculer la représentation "
"\"officielle\" en chaîne de caractères d'un objet. Tout est fait pour cela "
"ressemble à une expression Python valide qui peut être utilisée pour recréer "
"un objet avec la même valeur (dans un environnement donné). Si ce n'est pas "
"possible, une chaîne de la forme ``<...une description utile...>`` est "
"renvoyée. La valeur renvoyée doit être un objet chaîne de caractères. Si une "
"classe définit :meth:`__repr__` mais pas :meth:`__str__`, alors :meth:"
"`__repr__` est aussi utilisée quand une représentation \"informelle\" en "
"chaîne de caractères est demandée pour une instance de cette classe."
#: ../Doc/reference/datamodel.rst:1234
msgid ""
"This is typically used for debugging, so it is important that the "
"representation is information-rich and unambiguous."
msgstr ""
"Cette fonction est principalement utilisée à fins de débogage, il est donc "
"important que la représentation donne beaucoup d'informations et ne soit pas "
"ambigüe."
#: ../Doc/reference/datamodel.rst:1245
msgid ""
@ -2037,6 +2137,10 @@ msgid ""
"string representation of an object. The return value must be a :ref:`string "
"<textseq>` object."
msgstr ""
"Appelée par :func:`str(objet)<str>` ainsi que les fonctions natives :func:"
"`format` et :func:`print` pour calculer une chaîne de caractères \"informelle"
"\" ou joliment mise en forme de représentation de l'objet. La valeur "
"renvoyée doit être un objet :ref:`string <textseq>`."
#: ../Doc/reference/datamodel.rst:1250
msgid ""
@ -2044,18 +2148,25 @@ msgid ""
"expectation that :meth:`__str__` return a valid Python expression: a more "
"convenient or concise representation can be used."
msgstr ""
"Cette méthode diffère de :meth:`object.__repr__` car il n'est pas attendu "
"que :meth:`__str__` renvoie une expression Python valide : une "
"représentation plus agréable à lire ou plus concise peut être utilisée."
#: ../Doc/reference/datamodel.rst:1254
msgid ""
"The default implementation defined by the built-in type :class:`object` "
"calls :meth:`object.__repr__`."
msgstr ""
"C'est l'implémentation par défaut des appels à :meth:`object.__repr__` du "
"type natif :class:`object`."
#: ../Doc/reference/datamodel.rst:1264
msgid ""
"Called by :ref:`bytes <func-bytes>` to compute a byte-string representation "
"of an object. This should return a :class:`bytes` object."
msgstr ""
"Appelée par :ref:`bytes <func-bytes>` pour calculer une représentation en "
"chaîne *bytes* d'un objet. Elle doit renvoyer un objet :class:`bytes`."
#: ../Doc/reference/datamodel.rst:1275
msgid ""
@ -2068,21 +2179,34 @@ msgid ""
"classes will either delegate formatting to one of the built-in types, or use "
"a similar formatting option syntax."
msgstr ""
"Appelée par la fonction native :func:`format` et, par extension, lors de "
"l'évaluation de :ref:`formatted string literals <f-strings>` ou de la "
"méthode :meth:`str.format`. Elle produit une chaîne de caractères \"formatée"
"\" représentant un objet. L'argument ``format_spec`` est une chaîne de "
"caractères contenant la description des options de formatage voulues. "
"L'interprétation de l'argument ``format_spec`` est laissée au type "
"implémentant :meth:`__format__`. Cependant, la plupart des classes délèguent "
"le formatage aux types natifs ou utilisent une syntaxe similaire d'options "
"de formatage."
#: ../Doc/reference/datamodel.rst:1285
msgid ""
"See :ref:`formatspec` for a description of the standard formatting syntax."
msgstr ""
"Lisez :ref:`formatspec` pour une description de la syntaxe standard du "
"formatage."
#: ../Doc/reference/datamodel.rst:1287
msgid "The return value must be a string object."
msgstr ""
msgstr "La valeur renvoyée doit être un objet chaîne de caractères."
#: ../Doc/reference/datamodel.rst:1289
msgid ""
"The __format__ method of ``object`` itself raises a :exc:`TypeError` if "
"passed any non-empty string."
msgstr ""
"La méthode __format__ de ``object`` lui-même lève une :exc:`TypeError` si "
"vous lui passez une chaîne non vide."
#: ../Doc/reference/datamodel.rst:1305
msgid ""
@ -2092,6 +2216,11 @@ msgid ""
"``x!=y`` calls ``x.__ne__(y)``, ``x>y`` calls ``x.__gt__(y)``, and ``x>=y`` "
"calls ``x.__ge__(y)``."
msgstr ""
"Ce sont les méthodes dites \"de comparaisons riches\". La correspondance "
"entre les symboles opérateurs et les noms de méthodes est la suivante : "
"``x<y`` appelle ``x.__lt__(y)``, ``x<=y`` appelle ``x.__le__(y)``, ``x==y`` "
"appelle ``x.__eq__(y)``, ``x!=y`` appelle ``x.__ne__(y)``, ``x>y`` appelle "
"``x.__gt__(y)`` et ``x>=y`` appelle ``x.__ge__(y)``."
#: ../Doc/reference/datamodel.rst:1311
msgid ""
@ -2103,6 +2232,14 @@ msgid ""
"statement), Python will call :func:`bool` on the value to determine if the "
"result is true or false."
msgstr ""
"Une méthode de comparaison riche peut renvoyer le singleton "
"``NotImplemented`` si elle n'implémente pas l'opération pour une paire "
"donnée d'arguments. Par convention, ``False`` et ``True`` sont renvoyées "
"pour une comparaison qui a réussi. Cependant, ces méthodes peuvent renvoyer "
"n'importe quelle valeur donc, si l'opérateur de comparaison est utilisé dans "
"un contexte booléen (par exemple dans une condition d'une instruction "
"``if``), Python appelle :func:`bool` sur la valeur pour déterminer si le "
"résultat est faux ou vrai."
#: ../Doc/reference/datamodel.rst:1318
msgid ""
@ -2113,6 +2250,12 @@ msgid ""
"ordering operations from a single root operation, see :func:`functools."
"total_ordering`."
msgstr ""
"Par défaut, :meth:`__ne__` délègue à :meth:`__eq__` et renvoie le résultat "
"inverse, sauf si c'est ``NotImplemented``. Il n'y a pas d'autres relations "
"implicites pour les opérateurs de comparaison. Par exemple, ``(x<y or "
"x==y)`` n'implique pas ``x<=y``. Pour obtenir une fonction d'ordre total "
"automatique à partir d'une seule opération, reportez-vous à :func:`functools."
"total_ordering`."
#: ../Doc/reference/datamodel.rst:1325
msgid ""
@ -2120,6 +2263,10 @@ msgid ""
"term:`hashable` objects which support custom comparison operations and are "
"usable as dictionary keys."
msgstr ""
"Lisez le paragraphe :meth:`__hash__` pour connaitre certaines notions "
"importantes relatives à la création d'objets :term:`hashable` qui acceptent "
"les opérations de comparaison personnalisées et qui sont utilisables en tant "
"que clés de dictionnaires."
#: ../Doc/reference/datamodel.rst:1329
msgid ""
@ -2133,6 +2280,17 @@ msgid ""
"priority, otherwise the left operand's method has priority. Virtual "
"subclassing is not considered."
msgstr ""
"Il n'y a pas de versions avec les arguments interchangés de ces "
"méthodes (qui seraient utilisées quand l'argument de gauche ne connaît pas "
"l'opération alors que l'argument de droite la connaît) ; en lieu et place, :"
"meth:`__lt__` et :meth:`__gt__` sont la réflexion l'une de l'autre, :meth:"
"`__le__` et :meth:`__ge__` sont la réflexion l'une de l'autre et :meth:"
"`__eq__` ainsi que :meth:`__ne__` sont réflexives. Si les opérandes sont de "
"types différents et que l'opérande de droite est d'un type qui une sous-"
"classe directe ou indirecte du type de l'opérande de gauche, alors la "
"méthode réfléchie de l'opérande de droite est prioritaire, sinon c'est la "
"méthode de l'opérande de droite qui est prioritaire. Les sous-classes "
"virtuelles ne sont pas prises en compte."
#: ../Doc/reference/datamodel.rst:1346
msgid ""
@ -2144,6 +2302,14 @@ msgid ""
"also play a part in comparison of objects by packing them into a tuple and "
"hashing the tuple. Example::"
msgstr ""
"Appelée par la fonction native :func:`hash` et par les opérations sur les "
"membres de collections hachées, ce qui comprend :class:`set`, :class:"
"`frozenset` et :class:`dict`. :meth:`__hash__` doit renvoyer un entier. La "
"seule propriété requise est que les objets qui sont égaux pour la "
"comparaison doivent avoir la même valeur de hachage ; il est conseillé de "
"mélanger les valeurs de hachage des composants d'un objet qui jouent un rôle "
"de la comparaison des objets, en les plaçant un tuple dont on calcule "
"l'empreinte. Par exemple ::"
#: ../Doc/reference/datamodel.rst:1359
msgid ""
@ -2154,6 +2320,14 @@ msgid ""
"to check the width on all supported builds. An easy way to do this is with "
"``python -c \"import sys; print(sys.hash_info.width)\"``."
msgstr ""
":func:`hash` limite la valeur renvoyée d'un objet ayant une méthode :meth:"
"`__hash__` personnalisée à la taille d'un :c:type:`Py_ssize_t`. C'est "
"classiquement 8 octets pour une implémentation 64 bits et 4 octets sur une "
"implémentation 32 bits. Si la méthode :meth:`__hash__` d'un objet doit être "
"interopérable sur des plateformes ayant des implémentations différentes, "
"assurez-vous de vérifier la taille du hachage sur toutes les plateformes. "
"Une manière facile de le faire est la suivante : ``python -c \"import sys; "
"print(sys.hash_info.width)\"``."
#: ../Doc/reference/datamodel.rst:1367
msgid ""
@ -2166,6 +2340,15 @@ msgid ""
"immutable (if the object's hash value changes, it will be in the wrong hash "
"bucket)."
msgstr ""
"Si une classe ne définit pas de méthode :meth:`__eq__` , elle ne doit pas "
"définir l'opération :meth:`__hash__` non plus ; si elle définit :meth:"
"`__eq__` mais pas :meth:`__hash__`, les instances ne peuvent pas être "
"utilisées en tant qu'élément dans une collection de hachables. Si une classe "
"définit des objets mutables et implémente la méthode :meth:`__eq__`, elle ne "
"doit pas implémenter :meth:`__hash__` puisque l'implémentation des "
"collections hachables requiert que les clés soient des empreintes immuables "
"(si l'empreinte d'un objet change, il ne sera plus trouvé correctement dans "
"le stockage du dictionnaire)."
#: ../Doc/reference/datamodel.rst:1376
msgid ""
@ -2174,6 +2357,10 @@ msgid ""
"``x.__hash__()`` returns an appropriate value such that ``x == y`` implies "
"both that ``x is y`` and ``hash(x) == hash(y)``."
msgstr ""
"Les classes définies par l'utilisateur possèdent des méthodes :meth:`__eq__` "
"et :meth:`__hash__` par défaut ; ces méthodes répondent que tous les objets "
"sont différents (sauf avec eux-mêmes) et ``x.__hash__()`` renvoie une valeur "
"telle que ``x == y`` implique à la fois ``x is y`` et ``hash(x) == hash(y)``."
#: ../Doc/reference/datamodel.rst:1381
msgid ""
@ -2184,6 +2371,12 @@ msgid ""
"hash value, and will also be correctly identified as unhashable when "
"checking ``isinstance(obj, collections.Hashable)``."
msgstr ""
"Une classe qui surcharge :meth:`__eq__` et qui ne définit pas :meth:"
"`__hash__` a sa méthode :meth:`__hash__` implicitement assignée à ``None``. "
"Quand la méthode :meth:`__hash__` d'une classe est ``None``, une instance de "
"cette classe lève :exc:`TypeError` quand un programme essaie de demander son "
"empreinte et elle est correctement identifiée comme *non hachable* quand on "
"vérifie ``isinstance(obj, collections.Hashable)``."
#: ../Doc/reference/datamodel.rst:1388
msgid ""
@ -2191,6 +2384,10 @@ msgid ""
"of :meth:`__hash__` from a parent class, the interpreter must be told this "
"explicitly by setting ``__hash__ = <ParentClass>.__hash__``."
msgstr ""
"Si une classe qui surcharge :meth:`__eq__` a besoin de conserver "
"l'implémentation de :meth:`__hash__` de la classe parente, vous devez "
"l'indiquer explicitement à l'interpréteur en définissant ``__hash__ = "
"<ClasseParente>.__hash__``."
#: ../Doc/reference/datamodel.rst:1392
msgid ""
@ -2200,6 +2397,11 @@ msgid ""
"`TypeError` would be incorrectly identified as hashable by an "
"``isinstance(obj, collections.Hashable)`` call."
msgstr ""
"Si une classe ne surcharge pas :meth:`__eq__` et veut supprimer le calcul "
"des empreintes, elle doit inclure ``__hash__ = None`` dans la définition de "
"la classe. Une classe qui définit sa propre méthode :meth:`__hash__` qui "
"lève une :exc:`TypeError` serait incorrectement identifiée comme hachable "
"par un appel à ``isinstance(obj, collections.Hashable)``."
#: ../Doc/reference/datamodel.rst:1401
msgid ""
@ -2208,6 +2410,11 @@ msgid ""
"constant within an individual Python process, they are not predictable "
"between repeated invocations of Python."
msgstr ""
"Par défaut, les valeurs renvoyées par :meth:`__hash__` pour les chaînes, "
"*bytes* et objets datetime sont *salées* avec une valeur aléatoire non "
"prévisible. Bien qu'une empreinte reste constante tout au long d'un "
"processus Python, sa valeur n'est pas prévisible entre deux invocations de "
"Python."
#: ../Doc/reference/datamodel.rst:1406
msgid ""
@ -2216,6 +2423,11 @@ msgid ""
"insertion, O(n^2) complexity. See http://www.ocert.org/advisories/"
"ocert-2011-003.html for details."
msgstr ""
"C'est un comportement voulu pour se protéger contre un déni de service qui "
"utiliserait des entrées malicieusement choisies pour effectuer des "
"insertions dans le dictionnaire dans le pire cas, avec une complexité en "
"O(n^2). Lisez http://www.ocert.org/advisories/ocert-2011-003.html pour en "
"obtenir les détails."
#: ../Doc/reference/datamodel.rst:1411
msgid ""
@ -2223,6 +2435,10 @@ msgid ""
"mappings. Python has never made guarantees about this ordering (and it "
"typically varies between 32-bit and 64-bit builds)."
msgstr ""
"Modifier les empreintes obtenues par hachage modifie l'ordre d'itération sur "
"les dictionnaires, les ensembles et les autres tableaux de correspondances. "
"Python n'a jamais donné de garantie sur cet ordre (d'ailleurs, l'ordre n'est "
"pas le même entre les implémentations 32 et 64 bits)."
#: ../Doc/reference/datamodel.rst:1415
msgid "See also :envvar:`PYTHONHASHSEED`."
@ -2230,7 +2446,7 @@ msgstr "Voir aussi :envvar:`PYTHONHASHSEED`."
#: ../Doc/reference/datamodel.rst:1417
msgid "Hash randomization is enabled by default."
msgstr ""
msgstr "la randomisation des empreintes est activée par défaut."
#: ../Doc/reference/datamodel.rst:1425
msgid ""
@ -2240,6 +2456,12 @@ msgid ""
"considered true if its result is nonzero. If a class defines neither :meth:"
"`__len__` nor :meth:`__bool__`, all its instances are considered true."
msgstr ""
"Appelée pour implémenter le test de vérité et l'opération native "
"``bool()`` ; elle doit renvoyer ``False`` ou ``True``. Quand cette méthode "
"n'est pas définie, :meth:`__len__` est appelée, si elle est définie, et "
"l'objet est considéré vrai si le résultat est non nul. Si une classe ne "
"définit ni :meth:`__len__` ni :meth:`__bool__`, toutes ses instances sont "
"considérées comme vraies."
#: ../Doc/reference/datamodel.rst:1436
msgid "Customizing attribute access"