python callable错误_python报TypeError: 'str' object is not callable错误的解决办法

该错误TypeError: 'str' object is not callable字面上意思:就是str不可以被系统调用,

其实原因就是:你正在调用一个不能被调用的变量或对象,具体表现就是你调用函数、变量的方式错误.

所以,这个错误想表达的就是:str()是系统自带的,你不能在用它的时候自己同时定义一个别的叫做str的变量,这样会冲突.

出现这个情况错误一般是

1、str变量重复定义

2、变量重复定义

3、函数或者字符串调用错误

例子1:str字符串重复定义

classmate = ['one', 'two', 'three']

for str in classmate:

print(s + ', ')

print('\n')

str() 是一个builtin 函数,在这里将一个普通变量定义为str,编译器在之后的解释执行过程中,会一直把str作为一个普通变量处理,自然在希望调用str()的时候会出问题。

把这里的 str 改成 s 等其他变量,就能解决问题。

例子2、变量名重复定义

class Book:

def __init__(self, price, color):

self.price = price

self.color = color # color发生冲突,导致出错

def color(self):

print('书的颜色是:%s'%self.color)

eng = Book(10, 100, 'red')

print('书的价格是:%d'%eng.price)

eng.color()

Traceback (most recent call last):

File "/home/albert/PycharmProjects/xi.py", line 14, in

eng.color()

TypeError: 'str' object is not callable

书的价格是:100

所以,不能同时定义同一个名字叫color的,会冲突.改成color1即可!

例子三:函数或者字符串调用错误

def get_list_urls(self):

for list in self.domainList:

#print(self.domainList[list])

url = self.domainList[list]

reqs = requests.get(url = url, headers = self.headers)

html = reqs.text()

bfHtml = BeautifulSoup(html)

上例子也会报:'str' object is not callable

其原因是:requests的返回值reqs并没有text()方法,BeautifulSoup接收一个字符串,而我们误将 reqs.text 写成了 reqs.text(),就造成了这个错误。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值