2010-11-06 4 views
1

Par exemple, je veux avoir une méthode qui, selon le premier argument passé, peut prendre un int ou un char comme deuxième argument.Quelle serait la bonne façon de gérer les arguments pour une méthode qui pourrait être ints ou chars en python?

La façon dont j'ai pensé à le faire est d'avoir un si juste après la méthode qu'il appelle pour vérifier quel est le premier argument, il peut être un de 4. À ce stade, si c'est de dire, tapez 1 ou 2 cela attend un int comme deuxième argument, il complète le code dans le if. J'ai alors une vérification elif si le premier argument est de type 3 ou 4, puis il va dans ce bloc et complète le code dans ce bloc. L'autre lèvera une exception ou traitera le problème en conséquence.

Est-ce la bonne façon de le faire?

+0

Oui. "Simple est mieux que compliqué" – jsbueno

+0

Il peut être utile d'avoir un peu plus de contexte afin que nous puissions comprendre pourquoi votre code est conçu de cette façon. – MatrixFrog

+0

C'est comme ça que le projet est requis pour travailler par le professeur. – Trim

Répondre

1

Il est préférable d'avoir deux méthodes différentes si le code interne est différent dans les deux cas.

0

Si le code est identique, avec une certaine transformation des paramètres (obtention de la valeur ASCII de char par exemple - btw, char dans python est juste une chaîne de longueur 1), vous devriez faire le cast au début de la fonction le reste du code devrait être le même. Par exemple:

def foo(a, b): 
    if a == 1: 
     b = ord(b) 
    # use b as if it is integer 

Si le reste du code est tout à fait différent, vous sholud écrirez des fonctions différentes et ne pas essayer de le serrer dans un.

Questions connexes