-1

我正在尝试使用mod = importlib.import_module(str)fromSample2.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

4

1 回答 1

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

读:

于 2013-11-06T09:26:10.870 回答