SORU
17 Aralık 2010, Cuma


f() ilişkisiz yöntemi, ilk değişken olarak örnek fibo_ ile çağrılmalıdır (örnek classobj yerine var)

Python, bir sınıf içinde bir yöntem çalıştırmak için çalışıyorum ve bir hata alıyorum:

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)

Kod: (swineflu.py)

class fibo:
    a=0
    b=0

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

Script main.py

import swineflu

f = swineflu
fibo = f.fibo

fibo.f()            #TypeError is thrown here

Bu hata ne anlama geliyor? Bu hataya neden olan ne?

CEVAP
17 Aralık 2010, Cuma


TAMAM, her şeyden önce, gerek yok için bir başvuru almak için modüle farklı bir ad; eğer zaten bir başvuru (import) ve sadece kullanın. Eğer isterseniz farklı bir isim import swineflu as f kullanın.

İkinci sınıf için bir referans almak yerine sınıf başlatmasını.

Bu olmalıdır:

import swineflu

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

Biryöntem bağlıbir nesnenin örneğine bağlı. Birilişkisiz yöntemielbettedeğilörneğine bağlı. Bu hata genellikle sınıf örneği etmemiş çünkü bu durumda olup bittiğini tam olarak bir örneği sınıf yerine yöntemini çağıran, demektir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • FILIPeeeK

    FILIPeeeK

    22 Mayıs 2006
  • whatever

    whatever

    30 EYLÜL 2005