Plonger plus profondément dans le langage python intéressant, donc il n'y a pas de commutateur dans le langage en tant que construction. Donc, en utilisant les dictionnaires est le premier choix en lisant l'apprentissage python première édition. J'ai donc essayé STH comme,un autre commutateur avec des fonctions
cases = { 2 : readt3(e,t,off, partElems, partsNodes), # to read the triangular elements
3 : readq4(e,t,off, partElems, partsNodes), # to read the quadrangular elements
5 : readh8(e,t,off, partElems, partsNodes), # to read the hexa elements
}
# define functions
def readt3(e, t, off, partElems, partsNodes, partPnt):
partsElems[partPnt].append(e)
nods = t[offset: offset+3];
for n in nods:
partsNodes[partPnt].append(n)
return
et a obtenu l'erreur « readt3 est indéfini », je pensais que je suis arrivé parce qu'il est pas défini avant le cas, déplacé les définitions de fonction des cas ci-dessus, mais toujours le même problème, mais cette fois-ci "e n'est pas défini" Je ne pouvais pas comprendre cela, donc e est un paramètre de fonction, pourquoi ai-je une erreur liée à la définition sur e?
Où les définitions de fonctions devraient-elles être placées lors de l'émulation d'un commutateur dans cette situation?
+1 pour équilibrer la note de -1. S'il vous plaît quand vous votez -1, donnez une raison. Cette question ressemble à une question de débutant de base pour moi. –
Je me demandais aussi pourquoi il y avait un -1, et oui je suis un débutant en python ... –
Le manque d'instructions switch de Python est l'une des nombreuses raisons pour lesquelles j'AIME Python. Maintenant, vous utilisez un modèle de stratégie très facile à lire et facile à maintenir. Je recommande que lorsque vous utilisez le modèle de stratégie dans la réponse que vous avez sélectionnée, vous utilisez un meilleur nom. Le nom que vous avez choisi vous donne l'impression de coder à contrecœur sur l'absence de déclarations de cas de Python lorsque vous utilisez une bonne pratique. – marr75