Python报错'module' object is not callable

本文介绍了在Python编程中使用装饰器时可能遇到的一个常见错误:“module” object is not callable。通过实例说明了如何正确地从一个模块导入并使用装饰器,避免因模块和装饰器同名导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章部分来源:http://m.blog.youkuaiyun.com/hao930826/article/details/52232324

这个错误是引用不规范造成的
就是from A import B和import A的问题
from A import B的话,用到B时可以直接用
而import A的话,需要A.B

看一下今天我遇到的问题:
我把装饰器ftimer放到另一个文件ftimer中(我不该把这两个起相同的名字的)
然后我引用的时候

import ftimer

@ftimer
def linear_search(A,n,x):
    ans='NOT_FOUND'
    for i in range(n):
        if A[i]==x:
            ans=i+1
    return ans

由于同名,所以@ftimer没有出现红色下划线
同时一直报错:’module’ object is not callable

后来发现错误后,改为

import ftimer

@ftimer.ftimer
def linear_search(A,n,x):
    ans='NOT_FOUND'
    for i in range(n):
        if A[i]==x:
            ans=i+1
    return ans

from ftimer import ftimer

@ftimer
def linear_search(A,n,x):
    ans='NOT_FOUND'
    for i in range(n):
        if A[i]==x:
            ans=i+1
    return ans

就可以了


当然,最后我把那个文件名改为了decorators

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值