本文将带您了解关于我收到“TypeError:'列表'对象不可调用”。如何解决此错误?的新内容,同时我们还将为您解释typeerror对象不支持的相关知识,另外,我们还将为您提供关于django:Ty
本文将带您了解关于我收到“ TypeError:'列表'对象不可调用”。如何解决此错误?的新内容,同时我们还将为您解释typeerror对象不支持的相关知识,另外,我们还将为您提供关于django:TypeError:“ tuple”对象不可调用、is_authenticated()引发TypeError TypeError:'bool'对象不可调用、model.fit_generator中的“ TypeError:'NoneType'对象不可调用”、Python Flask,TypeError:“ dict”对象不可调用的实用信息。
本文目录一览:- 我收到“ TypeError:'列表'对象不可调用”。如何解决此错误?(typeerror对象不支持)
- django:TypeError:“ tuple”对象不可调用
- is_authenticated()引发TypeError TypeError:'bool'对象不可调用
- model.fit_generator中的“ TypeError:'NoneType'对象不可调用”
- Python Flask,TypeError:“ dict”对象不可调用
我收到“ TypeError:'列表'对象不可调用”。如何解决此错误?(typeerror对象不支持)
我有一个简单的脚本:
list = [1, 2, 3, 4, 5]myrange = list(range(1, 10))for number in list: if number in myrange: print(number, ''is between 1 and 10'')
但是,每当我尝试运行脚本时,Python都会引发错误:
Traceback (most recent call last): File "python", line 2, in <module>TypeError: ''list'' object is not callable
这个错误是什么意思?我为什么得到它?我该如何解决?
答案1
小编典典在您完全理解错误的含义以及如何解决之前,了解Python中的内置名称很重要。
什么是内置名称?
在Python中,内置名称是 Python解释程序已经分配了预定义值的名称 。该值可以是 函数 或 类
对象。无论范围如何,这些名称始终默认为可用。分配给这些名称的某些值表示Python语言的基本类型,而其他一些则非常有用。
从Python的最新版本3.6.2开始,当前有 61个
内置名称。名称及其使用方式的完整列表可在文档部分“
内置函数”中找到 。
但是要注意的重要一点是, Python 不会 阻止您 重新 分配内置名称。内置名称不是保留的,Python也允许将它们用作变量名称。
这是使用dict
内置示例:
>>> dict = {}>>> dict{}>>>
如您所见,Python允许我们分配dict
名称,以 引用字典对象 。
“ TypeError:’列表’对象不可调用”是什么意思?
简而言之,发生错误的原因是因为您在脚本中 重新分配 了 内置名称 list
:
list = [1, 2, 3, 4, 5]
完成此操作后, 您将覆盖内置name的预定义值 。这意味着您不能再使用的预定义值list
,它是表示Python列表的类对象。
因此,当您尝试使用list
该类从range
对象创建新列表时:
myrange = list(range(1, 10))
Python引发了一个错误。错误显示“’list’对象不可调用”的原因是,如上所述,该名称list
是指列表对象。因此,上述操作等效于:
[1, 2, 3, 4, 5](range(1, 10))
当然哪个没有意义。您不能调用列表对象。
我该如何解决错误?
如果您遇到类似的错误,例如此错误说“对象不可调用”,则很可能在代码中使用了内置名称作为变量。在这种情况下,修复就像重命名有问题的变量一样简单。例如,要修复以上代码,我们可以将list
变量重命名为ints
:
ints = [1, 2, 3, 4, 5] # Rename "list" to "ints"myrange = list(range(1, 10))for number in ints: # Renamed "list" to "ints" if number in myrange: print(number, ''is between 1 and 10'')
PEP8-官方Python样式指南-包含有关命名变量的许多建议。
这是新老Python用户经常犯的错误。这就是为什么总是避免使用很重要内置的名称作为变量,如str
,dict
,list
,range
,等。
当您尝试使用内置名称作为变量时,许多linter和IDE都会警告您。如果您经常犯此错误,则可能值得您花时间投资这些程序之一。
我没有重命名内置名称,但仍收到“ TypeError:’list’对象不可调用”。是什么赋予了?
导致上述错误的另一个常见原因是尝试使用括号(()
)而不是方括号([]
)为列表建立索引。例如:
>>> lst = [1, 2]>>> lst(0)Traceback (most recent call last): File "<pyshell#32>", line 1, in <module> lst(0)TypeError: ''list'' object is not callable
有关完整问题的说明以及解决该问题的方法,请参见TypeError:尝试访问list时不可调用’list’对象。
django:TypeError:“ tuple”对象不可调用
收到类型错误,“
tuple”对象不可调用。知道会是什么吗?(不要担心缩进。它会怪异地复制。)我正在尝试基于storeliquor的PackSize创建选择。
Views.py:
def storeliquor(request,store_id,liquor_id):
a = StoreLiquor.objects.get(StoreLiquorID=liquor_id)
s = Store.objects.get(StoreID=store_id)
x = Order.objects.get(storeID=s,Active=True)
y = a.OffPremisePrice
c = a.BottleSize
g = request.POST.get('OrderAmount','')
b = a.PackSize
h = b*2
d = b*3
e = b*4
r = b*5
if c == "1750 ML":
pack_size = (
('1','1')
('3','3')
(b,b)
(h,h)
(d,d)
(e,e)
(r,r)
)
elif c == "1000 ML":
pack_size = (
('1','3')
('6','6')
(b,r)
)
elif c == "750 ML":
pack_size = (
('1',h)
(c,r)
)
elif c == "375 ML":
pack_size = (
('3','6')
('12','12')
(b,r)
)
elif c == "200 ML":
pack_size = (
('12','24')
('24','24')
(b,b)
(c,c)
(c,r)
)
else:
pack_size = (
(b,r)
)
if request.method == "POST":
f = AddToOrderForm(request.POST)
if f.is_valid():
z = f.save(commit=False)
z.TotalPrice = (float(y)) * (float(g))
z.storeliquorID = a
z.orderID = x
z.save()
return HttpResponseRedirect('/stores/get/%s' % store_id)
else:
f = AddToOrderForm()
f.fields['OrderAmount'].choices = pack_size
args = {}
args['liquor'] = a
args['s'] = s
args['form'] = f
return render(request,'storeliquor.html',args)
模型文件:
class LiquorOrder(models.Model):
LiquorOrderID = models.AutoField(primary_key=True)
storeliquorID = models.ForeignKey(StoreLiquor)
orderID = models.ForeignKey(Order)
OrderAmount = models.CharField('Order Amount',max_length=3)
TotalPrice = models.DecimalField('Total Price',max_digits=5,decimal_places=2)
StorePrice = models.DecimalField('Store Price',decimal_places=2)
表格文件:
class AddToOrderForm(forms.ModelForm):
class Meta:
model = LiquorOrder
fields = ('OrderAmount','StorePrice')
is_authenticated()引发TypeError TypeError:'bool'对象不可调用
如何解决is_authenticated()引发TypeError TypeError:''bool''对象不可调用?
当您尝试表现对象的方法或功能时,会发生“对象不可调用”错误。
在这种情况下:
current_user.is_authenticated()
您将current_user.is_authenticated表现为一种方法,而不是一种方法。
您必须以这种方式使用它:
current_user.is_authenticated
您在方法或函数(而不是对象)之后使用“()”。
在某些情况下,类可能实现了__call__
也可以调用对象的函数,因此它将是可调用的。
解决方法
我尝试is_authenticated()
在视图中使用,但收到错误`TypeError:’bool’对象不可调用。为什么会出现此错误,我该如何解决?
@auth.before_app_request
def before_request():
if current_user.is_authenticated() \
and not current_user.confirmed \
and request.endpoint[:5] != ''auth.'' \
and request.endpoint != ''static'':
return redirect(url_for(''auth.unconfirmed''))
model.fit_generator中的“ TypeError:'NoneType'对象不可调用”
如何解决model.fit_generator中的“ TypeError:''NoneType''对象不可调用”?
我正在笔记本电脑上协作,训练一个Unet在Camvid数据集上进行图像分割。
https://drive.google.com/file/d/1e7IMp-ho1xkeHgEjoXsd33cpXYRUjGSG/view?usp=sharing
这是错误:
model.fit_generator()出了点问题。谁能看一下collab链接并帮助我修复此错误?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Python Flask,TypeError:“ dict”对象不可调用
如何解决Python Flask,TypeError:“ dict”对象不可调用?
Flask只希望视图返回类似响应的对象。 这表示Response
描述主体,代码和标题的,字符串或元组。你正在返回一个dict,这不是其中之一。由于你要返回JSON,因此请返回响应,该响应的正文中包含JSON字符串,内容类型为application/json
。
return app.response_class(rety.content, content_type=''application/json'')
在你的示例中,你已经有一个JSON字符串,即你发出的请求返回的内容。但是,如果要将Python结构转换为JSON响应,请使用jsonify:
data = {''name'': ''davidism''}
return jsonify(data)
在幕后,Flask是一个Wsgi应用程序,它期望传递可调用对象,这就是为什么你会收到该特定错误的原因:dict是不可调用的,并且Flask不知道如何将其转换为可调用对象。
解决方法
有一个似乎很常见的问题,但我已经完成了研究,并且看不到它在任何地方都被完全重新创建了。当我打印时json.loads(rety.text)
,我看到了所需的输出。但是,当我打电话给return时,它显示了这个错误。有任何想法吗?非常感谢你的帮助,谢谢。我正在使用Flask MethodHandler
。
class MHandler(MethodView):
def get(self):
handle = ''''
tweetnum = 100
consumer_token = ''''
consumer_secret = ''''
access_token = ''-''
access_secret = ''''
auth = tweepy.OAuthHandler(consumer_token,consumer_secret)
auth.set_access_token(access_token,access_secret)
api = tweepy.API(auth)
statuses = api.user_timeline(screen_name=handle,count= tweetnum,include_rts=False)
pi_content_items_array = map(convert_status_to_pi_content_item,statuses)
pi_content_items = { ''contentItems'' : pi_content_items_array }
saveFile = open("static/public/text/en.txt",''a'')
for s in pi_content_items_array:
stat = s[''content''].encode(''utf-8'')
print stat
trat = ''''.join(i for i in stat if ord(i)<128)
print trat
saveFile.write(trat.encode(''utf-8'')+''\n''+''\n'')
try:
contentFile = open("static/public/text/en.txt","r")
fr = contentFile.read()
except Exception as e:
print "ERROR: couldn''t read text file: %s" % e
finally:
contentFile.close()
return lookup.get_template("newin.html").render(content=fr)
def post(self):
try:
contentFile = open("static/public/text/en.txt","r")
fd = contentFile.read()
except Exception as e:
print "ERROR: couldn''t read text file: %s" % e
finally:
contentFile.close()
rety = requests.post(''https://gateway.watsonplatform.net/personality-insights/api/v2/profile'',auth=(''---'',''''),headers = {"content-type": "text/plain"},data=fd
)
print json.loads(rety.text)
return json.loads(rety.text)
user_view = MHandler.as_view(''user_api'')
app.add_url_rule(''/results2'',view_func=user_view,methods=[''GET'',])
app.add_url_rule(''/results2'',methods=[''POST'',])
这是Traceback(请记住上面的结果在打印):
Traceback (most recent call last):
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py",line 1836,in __call__
return self.wsgi_app(environ,start_response)
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py",line 1820,in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py",line 1403,in handle_exception
reraise(exc_type,exc_value,tb)
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py",line 1817,in wsgi_app
response = self.full_dispatch_request()
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py",line 1478,in full_dispatch_request
response = self.make_response(rv)
File "/Users/RZB/anaconda/lib/python2.7/site-packages/flask/app.py",line 1577,in make_response
rv = self.response_class.force_type(rv,request.environ)
File "/Users/RZB/anaconda/lib/python2.7/site-packages/werkzeug/wrappers.py",line 841,in force_type
response = BaseResponse(*_run_wsgi_app(response,environ))
File "/Users/RZB/anaconda/lib/python2.7/site-packages/werkzeug/test.py",line 867,in run_wsgi_app
app_rv = app(environ,start_response)
关于我收到“ TypeError:'列表'对象不可调用”。如何解决此错误?和typeerror对象不支持的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于django:TypeError:“ tuple”对象不可调用、is_authenticated()引发TypeError TypeError:'bool'对象不可调用、model.fit_generator中的“ TypeError:'NoneType'对象不可调用”、Python Flask,TypeError:“ dict”对象不可调用等相关知识的信息别忘了在本站进行查找喔。
本文标签: