通过在python中使用importlib调用另一个模块中的类时发生错误

时间:2013-11-06 09:20:13

标签: python python-2.7

我正在尝试使用mod = importlib.import_module(str)中的Sample2.py

模块调用模块

我调用的是PlayAround_Play.py它只包含一个函数时工作正常。如果我将一个类包含在该函数中

工作不正常。错误为TypeError: this constructor takes no arguments

sample2.py 中的

代码
import importlib
def calling():
      str="PlayAround_Play" 
      a=10
      b=20
      c=30
      mod = importlib.import_module(str)
      getattr(mod,str)(a, b, c)    

calling()
PlayAround_Play.py

中的

代码
class PlayAround_Play():
        def PlayAround_Play(self, a, b, c):
              d=a+b+c
              print d

你们可以告诉我如何使用importlib

来调用该课程

1 个答案:

答案 0 :(得分:1)

你正在以错误的方式打电话给你的班级:

inst = getattr(mod, strs)()   #creates an instance of the class
inst.PlayAround_Play(a, b, c) #call `PlayAround_Play` method on the instance.

<强>输出:

60

要使代码正常工作,请在班级中定义__init__

class PlayAround_Play():

    def __init__(self, a, b, c):
        d = a+b+c
        print d

现在:

getattr(mod, strs)(a, b, c)
#prints 60

读: