|
😎作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。🤓同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习从0到1系列文章。🌼同时洲洲已经建立了程序员技术交流群,如果您感兴趣,可以私信我加入社群,可以直接vx联系(文末有名片)v:bdizztt🖥随时欢迎您跟我沟通,一起交流,一起成长、进步!点此也可获得联系方式~本文目录前言一、可能的出错原因变量名与函数名冲突错误的函数调用列表或元组的索引错误使用错误地使用内置函数或方法二、解决方案总结前言上次有粉丝私信问了我一个bug:TypeError:‘int’objectisnotcallable如何解决,我们先来看看他的报错代码。源代码:classUser(): def__init__(self,name,age,number): self.name=name self.age=age self.custom=number defcustom(self): print('thenumberofcustomis'+str(self.custom))u=User('reborn',18,19)u.custom()1234567891011他的报错如下:D:\>pythontest.pyTraceback(mostrecentcalllast):File"test.py",line11,inu.custom()TypeError:'int'objectisnotcallable12345其实这个问题,很简单,就是函数名和变量名重复了,当这两个名称重复时,程序会默认调用Int型对象,但Int对象没有什么调用可言,就爆出了这个错误,解决方法也很简单,要么更改变量名,要么更改方法名。然后我搜集了一些常见的其他错误情况~一、可能的出错原因变量名与函数名冲突错误示例:defprint_hello():print("Hello,World!")print_hello=42#将print_hello变量赋值为整数42,覆盖了函数定义print_hello()#尝试调用print_hello,但此时它是一个整数,引发TypeError12345错误的函数调用错误示例:result=10/2result()#尝试调用result变量,但此时它是一个整数,引发TypeError12列表或元组的索引错误使用错误示例:my_list=[1,2,3]index=1my_list(index)#错误地尝试调用索引值,应该使用my_list[index]123错误地使用内置函数或方法错误示例:str("Hello")()#尝试调用字符串对象,引发TypeError1二、解决方案避免覆盖内置函数或已定义函数:不要将变量赋值为一个基本数据类型,覆盖已有的函数名。理解变量和函数的区别:变量用于存储数据,而函数是可调用的代码块。检查变量赋值:在调用一个变量之前,确保它被正确赋值为一个函数或方法。使用合适的语法:熟悉并使用正确的语法来访问列表元素或调用函数。编写清晰的代码:清晰的代码结构和命名约定可以减少这类错误的发生。代码审查:定期进行代码审查,检查可能的逻辑错误和语法错误。比如:使用正确的索引访问列表或元组元素解决方案:my_list=[1,2,3]index=1print(my_list[index])#正确使用索引访问列表元素123'运行运行正确使用内置函数或方法,解决方案:greeting=str("Hello")#正确地将字符串转换为str对象print(greeting)#12'运行运行正确理解变量存储的数据类型,解决方案:result=10/2print(result)#正确打印result变量的值12'运行运行总结📝Hello,各位看官老爷们好,我已经建立了CSDN技术交流群,如果你很感兴趣,可以私信我加入我的社群。📝社群中不定时会有很多活动,例如每周都会包邮免费送一些技术书籍及精美礼品、学习资料分享、大厂面经分享、技术讨论谈等等。📝社群方向很多,相关领域有Web全栈(前后端)、人工智能、机器学习、自媒体副业交流、前沿科技文章分享、论文精读等等。📝不管你是多新手的小白,都欢迎你加入社群中讨论、聊天、分享,加速助力你成为下一个大佬!📝想都是问题,做都是答案!行动起来吧!欢迎评论区or后台与我沟通交流,也欢迎您点击下方的链接直接加入到我的交流社群!~跳转链接社区~
|
|