Pourquoi Python cession de ne pas renvoyer une valeur?

Pourquoi Python affectation d'une déclaration plutôt qu'une expression? Si c'était une expression qui renvoie la valeur de la droite, à l'affectation, elle aurait permis de beaucoup moins verbeux code dans certains cas. Est-ce que je ne peux pas voir?

Par exemple:

# lst is some sequence
# X is come class
x = X()
lst.append(x)

aurait pu être réécrit comme suit:

lst.append(x = X())

Bien, pour être précis, le ci-dessus ne fonctionnera pas parce que x serait traitée comme un argument mot-clé. Mais une autre paire de parenthèses (ou un autre symbole pour le mot-clé arguments) aurait résolu que.

  • Quel est votre exemple de code ont à voir avec la question?
  • mon erreur. La version éditée (@Laurence Gonsalves) est bonne.
  • "Y at-il des questions que je ne peux pas voir?" Il semble que "beaucoup moins verbeux code" est de toute façon pas un problème. Laconique, cryptique code de golf semble être un problème. Êtes-vous d'actualisation que l'on a pour une raison quelconque?
  • Lott: je suppose que je pensais de simples exemples, comme celui que j'ai donné, je n'en vois pas trop cryptique); je suis d'accord que la capacité de l'abus de ce qui pourrait être l'une des raisons à l'encontre de cette fonctionnalité.
  • J'aime cette question et d'autres questions comme ça. Je crois que les réponses et les commentaires sont très constructifs et utiles. Je suis juste étonné de la fermeture de la police n'a pas l'arrêter, déjà NC 😉
  • J'ai demandé ça il y a longtemps, avant que j'ai appris que SI la communauté fronce les sourcils sur de telles questions. Je pense que j'ai juste eu de la chance avec celui-ci; semblables questions que j'ai posées plus tard, ont été fermés 🙂
  • Le seul (et je pense de plus en plus évidents) cas de cession n'est pas l'expression qui me gêne pas de fin à chaque fois: ligne = curseur.fetchone() \ tandis que la ligne: \ ... \ row = curseur.fetchone(), au lieu de tout le rang = curseur.fetchone(): Peut-être l'ajouter à la question?
  • lst.append(X()) aussi fonctionne parfaitement bien
  • Je voulais avoir X() assignée à la variable x; et aussi avoir le même X() ajouté à la liste.

InformationsquelleAutor max | 2011-02-02