Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3013

Re: conflit entre modules ? surcharge de sqrt

Subject Re: conflit entre modules ? surcharge de sqrt
From Pierre Maurette <maurette.pierre@free.fr>
References <5a5b2e78$0$4843$426a74cc@news.free.fr>
Newsgroups fr.comp.lang.python
Message-ID <mn.72c97e214ab0a89f.79899@free.fr> (permalink)
Date 2018-01-14 11:53 +0100
Organization Guest of ProXad - France

Show all headers | View raw


Fabrice :
> Bonjour,
>
> je suis débutant en Python mais pas en programmation (j'ai fait du C++)
> J'aimerai calculer la racine carré d'un réel dans un programme utilisant 
> aussi des complexes.
>
> je fais :
>
> from math import *
> from cmath import *
> if sqrt(2)<3:
>      print('oui')
>
> et j'ai une erreur :
> TypeError: unorderable types: complex() < int()
>
> pourtant sqrt(2) n'est pas un complexe ! Pourquoi Python me renvoie un 
> complexe dans ce cas ?
> Lors de la surcharge de la fonction, Python n'est pas capable de choisir la 
> bonne version ?

Le problème est dans vos import *
sqrt est dans math et dans cmath. (Je suppose que) les import de cmath, 
ultérieurs, masquent ceux de math. sqrt(2) devient cmath.sqrt(2) qui 
est valide et renvoie un complexe.

L'import * est généralement déconseillé. Je réserve cette notation à 
des bibliothèques personnelles pour lesquelles je veille à ce que les 
noms importés soient qualifiés (improbables). Ce qui vous arrive est en 
quelque sorte une chance. Si vous souhaitez alléger votre code, vous 
pourriez :
from math import *
import cmath as c
 Mais il me semble que même seul la première ligne peut poser 
problèmes. Donc:
import  math as M
import cmath as C
Mais je préfère me contenter de
import  math
import cmath
et de qualifier les appels. Avec la complétion c'est même plus souple.

-- 
Pierre Maurette

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

conflit entre modules ? surcharge de sqrt Fabrice <professeur.leclercq@gmail.com> - 2018-01-14 11:18 +0100
  Re: conflit entre modules ? surcharge de sqrt Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2018-01-14 11:46 +0100
    Re: conflit entre modules ? surcharge de sqrt Fabrice <professeur.leclercq@gmail.com> - 2018-01-14 12:06 +0100
      Re: conflit entre modules ? surcharge de sqrt Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2018-01-14 12:18 +0100
  Re: conflit entre modules ? surcharge de sqrt Pierre Maurette <maurette.pierre@free.fr> - 2018-01-14 11:53 +0100
    Re: conflit entre modules ? surcharge de sqrt Fabrice <professeur.leclercq@gmail.com> - 2018-01-14 12:07 +0100

csiph-web