Original Translation
51
Classes introduce a little bit of new syntax, three new object types, and some new semantics.
Le concept de classes introduit quelques nouveau éléments de syntaxe, trois nouveaux types d'objets ainsi que de nouveaux éléments de sémantique
52
Class Definition Syntax
Syntaxe de définition des classes
53
The simplest form of class definition looks like this::
La forme la plus simple de définition de classe ressemble à ceci ::
54
class ClassName: <statement-1> . . . <statement-N>
class NomDeLaClasse: <déclaration-1>. . . <déclaration-N>
55
Class definitions, like function definitions (:keyword:`def` statements) must be executed before they have any effect. (You could conceivably place a class definition in a branch of an :keyword:`if` statement, or inside a function.)
Les définitions de classes, comme les définitions de fonctions (définitions :keyword:`def`) doivent être exécutées avant d'avoir un effet. (Vous pouvez tout à fait placer une définition de classe dans une branche d'une instruction conditionnelle :keyword:`if` ou encore à l'intérieur d'une fonction.)
56
In practice, the statements inside a class definition will usually be function definitions, but other statements are allowed, and sometimes useful --- we'll come back to this later. The function definitions inside a class normally have a peculiar form of argument list, dictated by the calling conventions for methods --- again, this is explained later.
57
When a class definition is entered, a new namespace is created, and used as the local scope --- thus, all assignments to local variables go into this new namespace. In particular, function definitions bind the name of the new function here.
Quand une classe est définie, un nouvel espace de noms est créé et utilisé comme portée locale --- Ainsi, toutes les affectations de variables locales entrent dans ce nouvel espace de noms. En particulier, les définitions de fonctions y lient le nom de la nouvelle fonction.
58
When a class definition is left normally (via the end), a *class object* is created. This is basically a wrapper around the contents of the namespace created by the class definition; we'll learn more about class objects in the next section. The original local scope (the one in effect just before the class definition was entered) is reinstated, and the class object is bound here to the class name given in the class definition header (:class:`ClassName` in the example).
A la fin de la définition d'une classe, un *objet classe* est créé. C'est, pour simplifier, une encapsulation du contenu de de l'espace de nom créé par la définition de classe. Nous reparlerons des objets classes dans la prochaine section. La portée locale initiale (celle qui prévaut avant le début de la définition de la classe) est réinstanciée, et l'objet de classe est lié ici au nom de classe donné dans l'en-tête de définition de classe (:class:`NomDeLaClasse` dans l'exemple).
59
Class Objects
Les objets classe
60
Class objects support two kinds of operations: attribute references and instantiation.
Les objets classe prennent en charge deux types d'opérations: des références à des attributs et l'instanciation.