Je viens de lire un fichier texte et d'extraire une chaîne et de la stocker comme une variable. Cette chaîne se trouve également le nom d'une classe que je souhaite faire référence afin d'utiliser dans une fonction par exemple. La variable "qui_class" est la classe que la classe a été stockée dans le fichier
J'ai essayé de passer la variable_class en tant que paramètre sur la fonction. Suppression des citations semble faire fonctionner, mais je ne suis pas sûr de faire cela. P>
class needed_for_func_one():
multiplier = 1.23
class needed_for_func_two():
multiplier = 1.15
def random_function(which_class):
print(123 * which_class.multiplier)
PSEUDO CODE
READ FROM FILE STORE STRING AS "which_class"
which_class = "needed_for_func_two"
random_function(which_class)
3 Réponses :
La fonction Cependant, vous devez probablement repenser si vous voulez vraiment cela de cette façon ou s'il y a beaucoup de nettoyant solution. p> p> eval code> pourrait vous aider ici.
Merci, fonctionne bien. C'est tout à fait Janky, je sais que cela semble fonctionner comme solution rapide pour un petit problème
Je pense que votre question est liée à Celui-ci Comment appelez-vous la fonction dépend s'il s'agit d'une fonction globale ou si elle est à l'intérieur d'un objet.
getattr(from_this_object, 'call_this_function')()
Tout d'abord, pour utiliser une classe, vous avez besoin d'un objet d'une classe.
Donc, si ce que vous lisez est un nom de la classe ou une autre chose dont cela n'a pas d'importance, utilisez simplement une instruction IF pour décider de ce qui est à l'intérieur de cette variable dit "quel_class".
Ensuite, créez un objet comme: puis utilisez l'impression comme: p>
Cette question a été posée à plusieurs reprises auparavant. Voici un exemple Stackoverflow.com/questions/ 1176136 / ... .