变量类调用

时间:2020-01-24 08:15:23

标签: python-3.x class

我有一个要在其中调用不同模块的类,具体取决于用户的输入。

在我看来,它看起来像这样:

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')()

这不是唯一的一个,我尝试过的所有方法都会导致问题。 使我相信我的问题不同,或者我实施的方法错误。

在两种情况下均能提供帮助。

1 个答案:

答案 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()

相关问题