2012-09-16 29 views
24

hata "Bu yapıcı argümansızdır"?Aşağıdaki kodu çalıştırırken bir hata alıyorum __init__

+3

cevaplar __init__' çift çizgi kullandığı 'olduğuna dikkat çekmişlerdir. Ancak hata mesajını almanızın nedeni, varsayılan olarak, sınıfınızın 'object''den miras alınmış bir boş' __init __ (self) 'yöntemiyle sunulmasıdır. Bu yöntemi geçersiz kılmayacağınız için, çağrılan kişi buydu. –

+0

Benzer bir yazım hatası durumunda (bu durumda iki yerine bir altçizgi) '__ini__' yöntemini isimlendirerek aynı hataya düştüm – Salam

cevap

39

yöntem yapıcı değil _init_ olmak __init__ adlı olmalıdır. (Çift alt çizgiler not alın.)

Tek alt çizgi kullanırsanız, yalnızca _init_ adlı bir yöntem oluşturursunuz ve hiçbir argüman almayan bir varsayılan kurucu alırsınız. piton yöntemlerin açık bir anlayış ile bu documentation için

8

__init__ için çift alt çizgi kullanın.

class Person: 
    def __init__(self, name): 

(Python Tüm special methods başlayacak ve tek, çift değil, altını ile sona erer.)

+1

[Here] (http://stackoverflow.com/a/3443428/1322401) Python'un çift alt çizgilerden nasıl yararlandığı ortaya çıktı. –

-7
class Robots: 
    def __init__(self,subject): #add double underscores,on both sides. 

İpucu Lookup

+8

Bu cevap yeni bilgi eklemez ve kodda 2 sözdizimi hatası (ve çok standart dışı girinti) vardır. –

İlgili konular