我有一个要在其中调用不同模块的类,具体取决于用户的输入。
在我看来,它看起来像这样:
class Test:
def test1:
print("Hello world")
def test2:
print("farewell world")
user = input("> ")
Test.f{user}
现在它会在哪里调用用户告诉它的内容,但是它不起作用。 所以我的问题是,是否有可能,那么我将如何实现。
当尝试从给定链接中获取示例时,我一直遇到问题,例如它告诉我
"TypeError: test1() takes 0 positional arguments but 1 was given"
输入内容如下:
getattr(globals()['Test'](), 'test')()
这不是唯一的一个,我尝试过的所有方法都会导致问题。 使我相信我的问题不同,或者我实施的方法错误。
在两种情况下均能提供帮助。
答案 0 :(得分:0)
您应该尝试使用getattr()
。
例如:
class Test:
def test1():
print("Hello world")
def test2():
print("farewell world")
userinput = input('Which function do you wish to call?\n')
# getattr() takes 2 parameters, class name, and attribute name.
myfunc = getattr(Test, userinput)
myfunc()