【发布时间】:2013-11-14 04:20:41
【问题描述】:
我有:
主脚本:
import music.umm
UMM = music.umm.UMM()
UMM.read_information()
模块脚本:
class UMM(object):
def read_information(self):
# ..some code
UMM.login()
UMM = UMM()
使用此代码,我在运行主脚本时收到此错误:
TypeError: 'UMM' 对象不可调用
我该如何解决?
我从模块中删除了这一行:
UMM = UMM()
现在,主脚本运行功能模块,但如果脚本模块转到另一个功能,我得到这个错误:
TypeError: unbound 方法 login() 必须使用 UMM 实例调用 第一个参数(什么都没有)
【问题讨论】:
-
建议不要用
class等python语句命名变量、函数和类 -
你为什么有
UMM = UMM()?它用类的实例覆盖了你的类的名称UMM,所以当你在脚本中导入它时,你实际上是在导入instance(这是最后一行:@987654328 @) 而不是你的班级。 -
现在,我该怎么办?
-
@Black_Ram 尽量详细。 “如果脚本模块转到另一个函数”是什么意思?哪个功能?如果我们不知道具体情况,我们只能猜测。您可以提交一个SSCCE,向我们展示您的代码部分之间的关系。