# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2016, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../Doc/library/abc.rst:2 msgid ":mod:`abc` --- Abstract Base Classes" msgstr ":mod:`abc` --- Classes de Base Abstraites" #: ../Doc/library/abc.rst:11 msgid "**Source code:** :source:`Lib/abc.py`" msgstr "**Code source:** :source:`Lib/abc.py`" #: ../Doc/library/abc.rst:15 msgid "" "This module provides the infrastructure for defining :term:`abstract base " "classes ` (ABCs) in Python, as outlined in :pep:`3119`; " "see the PEP for why this was added to Python. (See also :pep:`3141` and the :" "mod:`numbers` module regarding a type hierarchy for numbers based on ABCs.)" msgstr "" #: ../Doc/library/abc.rst:20 msgid "" "The :mod:`collections` module has some concrete classes that derive from " "ABCs; these can, of course, be further derived. In addition the :mod:" "`collections.abc` submodule has some ABCs that can be used to test whether a " "class or instance provides a particular interface, for example, is it " "hashable or a mapping." msgstr "" #: ../Doc/library/abc.rst:27 msgid "This module provides the following classes:" msgstr "Le module fournit les classes suivantes :" #: ../Doc/library/abc.rst:31 msgid "Metaclass for defining Abstract Base Classes (ABCs)." msgstr "" #: ../Doc/library/abc.rst:33 msgid "" "Use this metaclass to create an ABC. An ABC can be subclassed directly, and " "then acts as a mix-in class. You can also register unrelated concrete " "classes (even built-in classes) and unrelated ABCs as \"virtual subclasses\" " "-- these and their descendants will be considered subclasses of the " "registering ABC by the built-in :func:`issubclass` function, but the " "registering ABC won't show up in their MRO (Method Resolution Order) nor " "will method implementations defined by the registering ABC be callable (not " "even via :func:`super`). [#]_" msgstr "" #: ../Doc/library/abc.rst:42 msgid "" "Classes created with a metaclass of :class:`ABCMeta` have the following " "method:" msgstr "" #: ../Doc/library/abc.rst:46 msgid "" "Register *subclass* as a \"virtual subclass\" of this ABC. For example::" msgstr "" #: ../Doc/library/abc.rst:59 msgid "Returns the registered subclass, to allow usage as a class decorator." msgstr "" #: ../Doc/library/abc.rst:62 msgid "" "To detect calls to :meth:`register`, you can use the :func:`get_cache_token` " "function." msgstr "" #: ../Doc/library/abc.rst:66 msgid "You can also override this method in an abstract base class:" msgstr "" #: ../Doc/library/abc.rst:70 msgid "(Must be defined as a class method.)" msgstr "(Doit être définie en temps que méthode de classe.)" #: ../Doc/library/abc.rst:72 msgid "" "Check whether *subclass* is considered a subclass of this ABC. This means " "that you can customize the behavior of ``issubclass`` further without the " "need to call :meth:`register` on every class you want to consider a subclass " "of the ABC. (This class method is called from the :meth:`__subclasscheck__` " "method of the ABC.)" msgstr "" #: ../Doc/library/abc.rst:78 msgid "" "This method should return ``True``, ``False`` or ``NotImplemented``. If it " "returns ``True``, the *subclass* is considered a subclass of this ABC. If it " "returns ``False``, the *subclass* is not considered a subclass of this ABC, " "even if it would normally be one. If it returns ``NotImplemented``, the " "subclass check is continued with the usual mechanism." msgstr "" #: ../Doc/library/abc.rst:88 msgid "" "For a demonstration of these concepts, look at this example ABC definition::" msgstr "" #: ../Doc/library/abc.rst:117 msgid "" "The ABC ``MyIterable`` defines the standard iterable method, :meth:" "`~iterator.__iter__`, as an abstract method. The implementation given here " "can still be called from subclasses. The :meth:`get_iterator` method is " "also part of the ``MyIterable`` abstract base class, but it does not have to " "be overridden in non-abstract derived classes." msgstr "" #: ../Doc/library/abc.rst:123 msgid "" "The :meth:`__subclasshook__` class method defined here says that any class " "that has an :meth:`~iterator.__iter__` method in its :attr:`~object." "__dict__` (or in that of one of its base classes, accessed via the :attr:" "`~class.__mro__` list) is considered a ``MyIterable`` too." msgstr "" #: ../Doc/library/abc.rst:128 msgid "" "Finally, the last line makes ``Foo`` a virtual subclass of ``MyIterable``, " "even though it does not define an :meth:`~iterator.__iter__` method (it uses " "the old-style iterable protocol, defined in terms of :meth:`__len__` and :" "meth:`__getitem__`). Note that this will not make ``get_iterator`` " "available as a method of ``Foo``, so it is provided separately." msgstr "" #: ../Doc/library/abc.rst:137 msgid "" "A helper class that has :class:`ABCMeta` as its metaclass. With this class, " "an abstract base class can be created by simply deriving from :class:`ABC`, " "avoiding sometimes confusing metaclass usage." msgstr "" #: ../Doc/library/abc.rst:141 msgid "" "Note that the type of :class:`ABC` is still :class:`ABCMeta`, therefore " "inheriting from :class:`ABC` requires the usual precautions regarding " "metaclass usage, as multiple inheritance may lead to metaclass conflicts." msgstr "" #: ../Doc/library/abc.rst:148 msgid "The :mod:`abc` module also provides the following decorators:" msgstr "" #: ../Doc/library/abc.rst:152 msgid "A decorator indicating abstract methods." msgstr "Un décorateur marquant les méthodes abstraites." #: ../Doc/library/abc.rst:154 msgid "" "Using this decorator requires that the class's metaclass is :class:`ABCMeta` " "or is derived from it. A class that has a metaclass derived from :class:" "`ABCMeta` cannot be instantiated unless all of its abstract methods and " "properties are overridden. The abstract methods can be called using any of " "the normal 'super' call mechanisms. :func:`abstractmethod` may be used to " "declare abstract methods for properties and descriptors." msgstr "" #: ../Doc/library/abc.rst:161 msgid "" "Dynamically adding abstract methods to a class, or attempting to modify the " "abstraction status of a method or class once it is created, are not " "supported. The :func:`abstractmethod` only affects subclasses derived using " "regular inheritance; \"virtual subclasses\" registered with the ABC's :meth:" "`register` method are not affected." msgstr "" #: ../Doc/library/abc.rst:167 msgid "" "When :func:`abstractmethod` is applied in combination with other method " "descriptors, it should be applied as the innermost decorator, as shown in " "the following usage examples::" msgstr "" #: ../Doc/library/abc.rst:201 msgid "" "In order to correctly interoperate with the abstract base class machinery, " "the descriptor must identify itself as abstract using :attr:" "`__isabstractmethod__`. In general, this attribute should be ``True`` if any " "of the methods used to compose the descriptor are abstract. For example, " "Python's built-in property does the equivalent of::" msgstr "" #: ../Doc/library/abc.rst:216 msgid "" "Unlike Java abstract methods, these abstract methods may have an " "implementation. This implementation can be called via the :func:`super` " "mechanism from the class that overrides it. This could be useful as an end-" "point for a super-call in a framework that uses cooperative multiple-" "inheritance." msgstr "" #: ../Doc/library/abc.rst:226 msgid "" "A subclass of the built-in :func:`classmethod`, indicating an abstract " "classmethod. Otherwise it is similar to :func:`abstractmethod`." msgstr "" #: ../Doc/library/abc.rst:229 msgid "" "This special case is deprecated, as the :func:`classmethod` decorator is now " "correctly identified as abstract when applied to an abstract method::" msgstr "" #: ../Doc/library/abc.rst:240 msgid "" "It is now possible to use :class:`classmethod` with :func:`abstractmethod`, " "making this decorator redundant." msgstr "" #: ../Doc/library/abc.rst:247 msgid "" "A subclass of the built-in :func:`staticmethod`, indicating an abstract " "staticmethod. Otherwise it is similar to :func:`abstractmethod`." msgstr "" #: ../Doc/library/abc.rst:250 msgid "" "This special case is deprecated, as the :func:`staticmethod` decorator is " "now correctly identified as abstract when applied to an abstract method::" msgstr "" #: ../Doc/library/abc.rst:261 msgid "" "It is now possible to use :class:`staticmethod` with :func:`abstractmethod`, " "making this decorator redundant." msgstr "" #: ../Doc/library/abc.rst:268 msgid "" "A subclass of the built-in :func:`property`, indicating an abstract property." msgstr "" #: ../Doc/library/abc.rst:271 msgid "" "Using this function requires that the class's metaclass is :class:`ABCMeta` " "or is derived from it. A class that has a metaclass derived from :class:" "`ABCMeta` cannot be instantiated unless all of its abstract methods and " "properties are overridden. The abstract properties can be called using any " "of the normal 'super' call mechanisms." msgstr "" #: ../Doc/library/abc.rst:277 msgid "" "This special case is deprecated, as the :func:`property` decorator is now " "correctly identified as abstract when applied to an abstract method::" msgstr "" #: ../Doc/library/abc.rst:287 msgid "" "The above example defines a read-only property; you can also define a read-" "write abstract property by appropriately marking one or more of the " "underlying methods as abstract::" msgstr "" #: ../Doc/library/abc.rst:301 msgid "" "If only some components are abstract, only those components need to be " "updated to create a concrete property in a subclass::" msgstr "" #: ../Doc/library/abc.rst:310 msgid "" "It is now possible to use :class:`property`, :meth:`property.getter`, :meth:" "`property.setter` and :meth:`property.deleter` with :func:`abstractmethod`, " "making this decorator redundant." msgstr "" #: ../Doc/library/abc.rst:316 msgid "The :mod:`abc` module also provides the following functions:" msgstr "" #: ../Doc/library/abc.rst:320 msgid "Returns the current abstract base class cache token." msgstr "" #: ../Doc/library/abc.rst:322 msgid "" "The token is an opaque object (that supports equality testing) identifying " "the current version of the abstract base class cache for virtual subclasses. " "The token changes with every call to :meth:`ABCMeta.register` on any ABC." msgstr "" #: ../Doc/library/abc.rst:330 msgid "Footnotes" msgstr "Notes" #: ../Doc/library/abc.rst:331 msgid "" "C++ programmers should note that Python's virtual base class concept is not " "the same as C++'s." msgstr ""