![](/img/trans.png)
[英]How to extract a word from a string and assign it to a variable in Python 3.7?
[英]How to reference a class from a string which is part of a variable 3.7
我刚刚阅读了一个文本文件并提取了一个字符串并将其存储为一个变量。 这个字符串也恰好是我想引用的 class 的名称,以便在 function 中使用。 “which_class”变量是存储在文件中的 class
我尝试将 which_class 变量作为参数传递给 function。 删除引号似乎使它起作用,但我不确定如何做到这一点。
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)
但这不起作用,它只是给了我一个属性错误
eval
function 可以在这里为您提供帮助。
random_function(eval(whichClass))
但是,您可能应该重新考虑是否真的要那样做,或者是否有更清洁的解决方案。
我认为您的问题与此有关您如何调用 function 取决于它是全局 function 还是在 object 内部。
globals()['call_this_function']() # this is probably what you need
或者
getattr(from_this_object, 'call_this_function')()
首先,要使用 class,您需要 class 的 object。 因此,如果您阅读的是 class 的名称或任何其他无关紧要的东西,只需使用 if 语句来确定该变量中的内容,即所谓的“which_class”。 然后创建一个 object 像:
if which_class=="needed_for_func_one":
newObject = needed_for_func_one()
elseif which_class=="needed_for_func_two":
newObject = needed_for_func_two()
然后使用像这样的打印:
print(123 * newObject.multiplier )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.