Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / savoir si un pointeur désigne une classe précise

savoir si un pointeur désigne une classe précise

Remonter à Forum général Python
  • savoir si un pointeur désigne une classe précise

    Envoyé par awalter1 le 9 Février 2009 à 09:05
    Bonjour,

    En entrée d'une classe python, je fais :
    print "TableB__ =",self

    à l'exécution j'obtiens :
    TableB__ = 
    ou bien
    TableB__

    Comment puis je tester l'un ou l'autre appel ? ce qui revient à savoir sur quelle classe pointe self ou quel est le type de self.
     if self == ?:
    ...

    Merci
    • Re: savoir si un pointeur désigne une classe précise

      Envoyé par awalter1 le 9 Février 2009 à 09:27
      Je pensais que isinstance(self,TableB__)ferait l'affaire mais cela me renvoie toujours True.
      Cela est peut être du au fait que la classe SubTable hérite de MainTable ?
      Merci
    • Re: savoir si un pointeur désigne une classe précise

      Envoyé par awalter1 le 9 Février 2009 à 09:58
      Je pensais que isinstance(self,TableB__)ferait l'affaire mais cela me renvoie toujours True.
      Cela est peut être du au fait que la classe SubTable hérite de MainTable ?
      Merci
    • Re: savoir si un pointeur désigne une classe précise

      Envoyé par jacko le 9 Février 2009 à 10:33
      Bonjour,
      1/ On ne comprend pas "En entrée d'une classe Python". Je suppose que tu veux dire "Dans la méthode __init__() de la classe" ?
      2/ En effet, isinstance() répond True pour une classe dérivée.
      3/ Pour connaître la classe exacte de l'instance, il faut utiliser son attribut __class__ :
      if self.__class__ is SubTable___
      Cordialement.


    • Re: savoir si un pointeur désigne une classe précise

      Envoyé par awalter1 le 9 Février 2009 à 10:34
      C'est exactement cela.
      merci beaucoup
Rendu par Ploneboard