Python3 TypeError: 'module' object is not callable

刚入门Python 在使用important时就遇到错误:TypeError: 'module' object is not callable

代码

from python import MyClass
from python.package_name import ClassMy
def main():
    ab = MyClass('444')
    cd = ClassMy('10')
    print(cd.haha())
    print(ab)
    print('abc')
    
if __name__ == '__main__':
    main()
    pass
'''

@author: Administrator
'''

class MyClass(object):
    '''
    classdocs
    '''


    def __init__(self, params):
        '''
        Constructor
        '''
        pass
    def test02(self):
        return 'abc'

在运行时出现

根据是导入问题,但我使用的是eclipse进行追踪能正常追踪到 MyClass文件当中。百思不得其解,在网上查到在目录下添加__init__.py文件。

解决方案:代码修改为

from python.MyClass import MyClass
from python.package_name import ClassMy
def main():
    ab = MyClass('444')
    cd = ClassMy('10')
    print(cd.haha())
    print(ab)
    print('abc')
    
if __name__ == '__main__':
    main()
    pass

正常执行过去。

错误原因,在MyClass.py中调用MyClass类,这个错误信息是说你试图把"MyClass"这个模块作为一个函数来调用,但它却无法调用。事实上,调用的应该是MyClass文件中MyClass这个类。

调用规则应该是这样的:

1.如果MyClass.py 中有Class MyClass(),要调用改函数中的方法,方法是:模块名(文件名).类名.方法名

2.如果调用的是MyClass.py文件中的def MyClass()函数:模块名(文件名).函数名

在使用java中总是类名和文件名相同致使错误产生,应该区分开来。

 

如果添加上述方式还不能解决,需要去查看python3的搜索路径

使用

sys.path查看,python是否找到了文件,在最上端添加

import sys,os
sys.path.append(sys.path[0])

然后执行

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值