Nov 23, 2024

Wiki

Python

Aide

edit SideBar

Search

Les Classes

Définition d’une classe

  >>> class Point :
  ...     "Définition d'un point mathematique"

L'indentation, dans ce qui précède, est obligatoire : toutes les lignes de la classes doivent commencer par le même nombre d’espaces.

Notons aussi qu'une classe doit contenir au moins une ligne de contenu, et que son nom commence par une majuscule (c'est une convention).

Instanciation d’objets

L'instanciation d’objets se fait à l'aide d'une simple instruction d'affectation :

  >>> p = Point()

...à adapter, au cas où, au nombre d’arguments qu’autorisent vos constructeurs (pas de new, donc, en Python).

Connaître la classe d'une instance

Pour connaître la classe de l'instance p :

  >>> p = Point()

  >>> type(p)
  <type 'instance'>

  >>> print p
  <__main__.Point instance at 0xb79eeb4c>

p est donc bien une instance de la classe Point(), définie elle-même au niveau principal du programme. Cette instance est située dans un emplacement bien déterminé de la mémoire vive, dont l'adresse apparaît ici en notation hexadécimale.

Egalité de deux objets

Utilisation du symbole égalité

Considérons l'objet suivant

  >>> p1 = Point()
  >>> p1.x = 3
  >>> p1.y = 4

Par l'instruction

  >>> p2 = p1

Nous créons deux références d'un même objet :

  >>> print p1
  <__main__.Point instance at 00C2CBEC>
  >>> print p2
  <__main__.Point instance at 00C2CBEC>

  >>> print (p1 == p2)
  1

Et, évidemment, si l'on modifie p1, alors p2 sera aussi modifié.

Mêmes attributs

Inversement, si l'on crée deux objets avec les mêmes attributs :

  >>> p1 = Point()
  >>> p1.x = 3
  >>> p1.y = 4

  >>> p2 = Point()
  >>> p2.x = 3
  >>> p2.y = 4

Ces deux objets ne sont pas égaux, puisqu'ils n'occupent pas la même place mémoire :

  >>> print p1
  <__main__.Point instance at 00C2CBEC>
  >>> print p2
  <__main__.Point instance at 00C50F9C>
  >>> print (p1 == p2)
  0

Page Actions

Recent Changes

Group & Page

Back Links