python错误:TypeError: 'module' object is not callable
2016-12-08 11:23
1111 查看
TrainCorpusStructure.py 文件中的代码如下:
Demo.py中的代码如下:
其实想实现一个非常简单的功能,在TestFang.py文件中操作TrainCorpusStructure.py中的列表 inputs
但是遗憾的是提示有错误:
Traceback (most recent call last):
File "/home/ubuntu/workspace/BioEvent/corpusProcess/TestFang.py", line 16, in <module>
tf.test()
File "/home/ubuntu/workspace/BioEvent/corpusProcess/TestFang.py", line 5, in test
tcs = TrainCorpusStructure()
TypeError: 'module' object is not callable
于是在网上查询错误原因: 跟import导入机制有关
正确的写法有两种:
写法1:
写法2:
仔细观察import导入的方式:明确一点的是,TrainCorpusStructure.py文件和TestDemo.py文件在同一个包里(即一个文件夹下)
写法1和写法2的区别有两点:
1,导入方式,写法1是:from Corpus import TrainCorpusStructure,
写法2是:import corpusProcess.TrainCorpusStructure as tc
2, 调用方式不同,
写法1是: tcs = TrainCorpusStructure.TrainCorpusStructure(),
写法2是 tcs = tc.TrainCorpusStructure()
补充理解:其实明白了调用的规则非常容易理解,A.py 文件调用B.py文件的方法(注意不是函数)
规则:1,如果调用的是B.py文件中的方法,即B.py 中有Class B: 调用的原则是:模块名—类名—方法名
2, 如果调用的是B.py文件中的函数:模块名—函数名
为了进一步测试:又写了一个类Wu.py
不明白的地方:如果我把Wu.py 命名为TestWu.py 或则 WuTest.py 的话, 运行Wu.py的时候就会进行单元测试而不会输出任何结果,我不明白为什么?待明确后补上
模块名如果有test或TEST等几个字符会进行单元测试,如果不是进行单元测试,不要使用'Test'这个字符
class TrainCorpusStructure: inputs = []
Demo.py中的代码如下:
from corpusProcess import TrainCorpusStructure class Demo: def test(self): tcs = TrainCorpusStructure() tcs.inputs.append('fa') tcs.inputs.append('su') print(tcs.inputs) # TrainCorpusStructure.inputs.append('haohao') # TrainCorpusStructure.inputs.append('tttttttt') # print(TrainCorpusStructure.inputs) if __name__ == '__main__': demo = Demo() demo.test()
其实想实现一个非常简单的功能,在TestFang.py文件中操作TrainCorpusStructure.py中的列表 inputs
但是遗憾的是提示有错误:
Traceback (most recent call last):
File "/home/ubuntu/workspace/BioEvent/corpusProcess/TestFang.py", line 16, in <module>
tf.test()
File "/home/ubuntu/workspace/BioEvent/corpusProcess/TestFang.py", line 5, in test
tcs = TrainCorpusStructure()
TypeError: 'module' object is not callable
于是在网上查询错误原因: 跟import导入机制有关
正确的写法有两种:
写法1:
from corpusProcess import TrainCorpusStructure class Demo: def test(self): tcs = TrainCorpusStructure.TrainCorpusStructure() tcs.inputs.append('fang') tcs.inputs.append('su') print(tcs.inputs) # TrainCorpusStructure.inputs.append('haohao') # TrainCorpusStructure.inputs.append('tttttttt') # print(TrainCorpusStructure.inputs) if __name__ == '__main__': demo = Demo() demo.test()
写法2:
import corpusProcess.TrainCorpusStructure as tc class Demo: def test(self): tcs = tc.TrainCorpusStructure() tcs.inputs.append('fang') tcs.inputs.append('su') print(tcs.inputs) # TrainCorpusStructure.inputs.append('haohao') # TrainCorpusStructure.inputs.append('tttttttt') # print(TrainCorpusStructure.inputs) if __name__ == '__main__': demo = Demo() demo.test()
仔细观察import导入的方式:明确一点的是,TrainCorpusStructure.py文件和TestDemo.py文件在同一个包里(即一个文件夹下)
写法1和写法2的区别有两点:
1,导入方式,写法1是:from Corpus import TrainCorpusStructure,
写法2是:import corpusProcess.TrainCorpusStructure as tc
2, 调用方式不同,
写法1是: tcs = TrainCorpusStructure.TrainCorpusStructure(),
写法2是 tcs = tc.TrainCorpusStructure()
补充理解:其实明白了调用的规则非常容易理解,A.py 文件调用B.py文件的方法(注意不是函数)
规则:1,如果调用的是B.py文件中的方法,即B.py 中有Class B: 调用的原则是:模块名—类名—方法名
2, 如果调用的是B.py文件中的函数:模块名—函数名
为了进一步测试:又写了一个类Wu.py
import corpusProcess.Demo as tfl class Wu: def hehe(self): testF = tfl.Demo() testF.test() print('测试结果怎么样') if __name__ == '__main__': ts = Wu() ts.hehe()
不明白的地方:如果我把Wu.py 命名为TestWu.py 或则 WuTest.py 的话, 运行Wu.py的时候就会进行单元测试而不会输出任何结果,我不明白为什么?待明确后补上
模块名如果有test或TEST等几个字符会进行单元测试,如果不是进行单元测试,不要使用'Test'这个字符
相关文章推荐
- python错误:TypeError: 'module' object is not callable
- python错误: TypeError:'dict' object is not callable
- Python TypeError: 'module' object is not callable
- Python包导入(TypeError: 'module' object is not callable),及一定要记住Python成员函数第一个参数值是self。
- Anaconda下import caffe出现错误TypeError: 'module' object is not callable
- python+selenium自动化测试~打开浏览器报TypeError: 'module' object is not callable
- python import 包问题:TypeError: 'module' object is not callable
- python 2.7 : 引用模块时出现TypeError:'module' object is not callable
- python TypeError: 'module' object is not callable
- python错误:TypeError: 'str' object is not callable
- TypeError: 'module' object is not callable错误处理
- python write()参数错误,导致报错TypeError: a bytes-like object is required, not 'str'
- python3中,socket使用send函数时出现的错误:TypeError: a bytes-like object is required, not 'str'
- python错误TypeError: 'module' object is not callable 的解决方法
- python的exit退出时,提示TypeError: 'str' object is not callable
- python错误TypeError: 'module' object is not callable 的解决方法
- Python错误代码分析:莫名的[TypeError: 'int' object is not iterable]
- TypeError: 'module' object is not callable
- Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
- PyOpenGL出现错误TypeError: 'NoneType' object is not callable