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

来源:网络 文章列表 2019-06-18 8
该错误TypeError: 'str' object is not callable字面上意思:就是str不可以被系统调用,其实原因就是:你正在调用一个不能被调用的变量或对象,具体表现就是你调用函数、变量的方式错误.

该错误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 <module>
    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(),就造成了这个错误。

 

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论

友情链接