TLDR
Les tirets sont no illégales mais vous ne devriez pas les utiliser pour 3 raisons :
- Vous avez besoin d'une syntaxe spéciale pour importer des fichiers avec des tirets
- Personne ne s'attend à un nom de module avec un tiret
- C'est contre les recommandations de la Guide de style Python
Si vous avez absolument besoin d'importer un nom de fichier avec un tiret, la syntaxe spéciale est la suivante :
module_name = __import__('module-name')
Vous voulez savoir pourquoi nous avons besoin d'une syntaxe spéciale ?
La raison de cette syntaxe spéciale est que lorsque vous écrivez import somename
vous créez un objet module avec l'identifiant somename
(afin que vous puissiez l'utiliser ultérieurement avec, par exemple, la fonction somename.funcname
). Bien entendu module-name
n'est pas un identifiant valide, d'où la syntaxe spéciale qui en donne un valide.
Vous ne comprenez pas pourquoi module-name n'est pas un identifiant valide ?
Ne t'inquiète pas je ne l'ai pas fait non plus. Voici une astuce pour t'aider : Regarde cette ligne python : x=var1-var2
. Voyez-vous une soustraction sur le côté droit de l'affectation ou un nom de variable avec un tiret ?
PS
Rien d'original dans ma réponse, si ce n'est que j'ai inclus ce que je considérais comme les éléments d'information les plus pertinents de toutes les autres réponses en un seul endroit.