60 votes

pourquoi invoquons-nous print après l'importation de print_function (en Python 2.6)

Pour obtenir la fonction d'impression 3.0, procédez comme suit dans Python 2.6:

 from __future__ import print_function
 

Mais pour utiliser la fonction, nous appelons print () et non print_function (). Est-ce juste une incohérence ou y a-t-il une bonne raison à cela?

Pourquoi pas ce qui suit:

 from __future__ import print
 

48voto

kindall Points 60645

La raison en est que lorsque vous importez de __future__ vous ne définissez en fait qu'un indicateur qui indique à l'interprète de se comporter un peu différemment que d'habitude - dans le cas de print_function , le print() est rendue disponible à la place de l'instruction. Le module __future__ est donc "spécial" ou "magique" - il ne fonctionne pas comme les modules habituels.

13voto

Senthil Kumaran Points 14934

print_function est FeatureName pas être confondue avec l' print intégré dans la fonction elle-même. C'est une fonctionnalité qui est disponible à partir de l'avenir, de sorte que vous pouvez utiliser la fonction intégrée qu'elle peut fournir.

Les autres Caractéristiques comprennent:

all_feature_names = [
    "nested_scopes",
    "generators",
    "division",
    "absolute_import",
    "with_statement",
    "print_function",
    "unicode_literals",
]

Il y a des raisons particulières lorsque vous migrez votre code de la prochaine version supérieure, votre programme va rester telle que l'utilisation de la fonctionnalité de mise à jour à la place de l' __future__ version. Aussi, si c'était le nom de la fonction ou le mot-clé lui-même, il peut causer de la confusion à l'analyseur.

4voto

Tim Pietzcker Points 146308

En Python 3, le mot-clé print a été changé entre l'appel d'une instruction et l'appel d'une fonction.

Ainsi, au lieu de dire print value vous devez maintenant dire print(value) ou vous obtiendrez un SyntaxError .

En effectuant les import , cette modification est également effectuée dans Python 2 afin que vous puissiez écrire des programmes en utilisant la même syntaxe que Python 3 (au moins autant que print est concerné).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X