GVKun编程网logo

我收到“ TypeError:'列表'对象不可调用”。如何解决此错误?(typeerror对象不支持)

20

本文将带您了解关于我收到“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对象不支持)

我收到“ 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用户经常犯的错误。这就是为什么总是避免使用很重要内置的名称作为变量,如strdictlistrange,等。

当您尝试使用内置名称作为变量时,许多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”对象不可调用

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'对象不可调用

如何解决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'对象不可调用”

如何解决model.fit_generator中的“ TypeError:''NoneType''对象不可调用”?

我正在笔记本电脑上协作,训练一个Unet在Camvid数据集上进行图像分割。

https://drive.google.com/file/d/1e7IMp-ho1xkeHgEjoXsd33cpXYRUjGSG/view?usp=sharing

这是错误:

enter image description here

model.fit_generator()出了点问题。谁能看一下collab链接并帮助我修复此错误?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Python Flask,TypeError:“ dict”对象不可调用

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”对象不可调用等相关知识的信息别忘了在本站进行查找喔。

本文标签: