当前位置: 首页 > 面试题库 >

未绑定的方法f()必须以fibo_实例作为第一个参数来调用(取而代之的是class classobj实例)

苍恩
2023-03-14
问题内容

在Python中,我尝试在类中运行方法,但出现错误:

Traceback (most recent call last):
  File "C:\Users\domenico\Desktop\py\main.py", line 8, in <module>
    fibo.f()
  TypeError: unbound method f() must be called with fibo instance 
  as first argument (got nothing instead)

代码:(swineflu.py)

class fibo:
    a=0
    b=0

    def f(self,a=0):
        print fibo.b+a
        b=a;
        return self(a+1)

脚本main.py

import swineflu

f = swineflu
fibo = f.fibo

fibo.f()            #TypeError is thrown here

这个错误是什么意思?是什么导致此错误?


问题答案:

好的,首先,您不必使用不同的名称来引用模块。您已经有一个参考(来自import),您可以使用它。如果您想使用其他名称,请使用import swineflu as f

其次,您将获得对该类的引用,而不是实例化该类。

所以这应该是:

import swineflu

fibo = swineflu.fibo()  # get an instance of the class
fibo.f()                # call the method f of the instance

绑定的方法 是一个被附加到对象的实例。的 未结合的方法 是,当然,一个是
附连到一个实例。该错误通常意味着您是在类而不是实例上调用方法,这正是在这种情况下发生的事情,因为您没有实例化该类。



 类似资料:
  • 当我尝试运行代码时,它会导致我遇到一个异常。 LoginController.java sampleClass.java MissingMethodInvocationException:when()需要一个必须是“mock上的方法调用”的参数。例如:when(mock.getarticles()).ThenReturn(articles); 此外,出现此错误的原因可能是:1。您使用final/p

  • 不幸的是: TweetServiceTest.java Hibernateutil.java

  • 问题内容: 包含的封闭实例 下面是代码。是我要使用的对象,它给了我上面的错误。 目前尚不清楚原因。 问题答案: 您正在尝试使用非静态内部类而没有其所属的实例。 非静态内部类必须属于其父类的实例 您可能应该更改为普通类或静态内部类。 或者,您可以编写以创建属于该实例的内部类的实例。

  • 在我的网站上,我允许人们上传图片画廊。当他们点击图像时,底部有一个下一个和上一个按钮,这样他们就可以很容易地在图像中来回滚动。 我在位于/opt/cpanel/ea-php72/root/usr/var/log/php-fpm的日志中得到以下错误/ 这是关于我代码中的以下行: 下面是该行附带的其他代码: 基本上,这段代码使用get_字段(“gallery”)获取gallery中的照片总数,并将该数

  • 问题内容: 我有以下代码: 在这种情况下,我需要mysql_real_escape_string还是可以吗? 问题答案: 不,在使用准备好的语句时,您不必自己逃避价值 (即,您不需要调用):DB引擎将自己执行该操作。 (实际上,如果您正在调用并使用绑定参数,则您的字符串将被转义两次- 并不是很好:您最终会到处转义字符…) 附带说明:您的值以整数形式传递 (如所示),因此即使您未使用准备好的语句,也

  • 传递给Illumate\Auth\EloquentUserProvider的参数1::validateCreentials()必须是Illumate\合同\Auth\身份验证的实例,应用程序\模型\用户给定的实例,在D:\xampp\htdocs\后端\电子商务\供应商\laravel\框架\src\Illumate\Auth\SessionG中uard.php第384行----我有这个问题请帮我