2016-04-07 12 views
0

Ich bin in Rückgabetyp und Wert von __init__() in Python verwirrt.Rückgabetyp und Wert von init

Gibt __init__() Rückgabewert oder sonst und was ist der Rückgabetyp von __init__()?

+0

Bitte fügen Sie einen Beispielcode bei. – cssko

Antwort

0

Während speziell behandelt werden - es automatisch mit der neu geschaffenen Instanz bei Instanciation Zeit genannt -, __init__ selbst ist nur eine gewöhnliche Python-Funktion, so dass es implizit None zurück, wenn Sie versuchen, ausdrücklich etwas anderes zurück ... Aber dann Sie werden feststellen (zur Zeit des Anrufs), dass es nicht erlaubt ist, etwas zurückzugeben als None, so dass Sie sicher davon ausgehen können, dass nichts zurückgegeben wird;)

0

Init in Python ist eine spezielle Methode namens Contructor. Konstruktoren geben tatsächlich keinen Wert zurück, auch nicht None. Sie werden verwendet, um eine Instanz einer Klasse zu erstellen. Instanzvariablen können im Konstruktor instanziiert werden. zB

class ClassA: 
    def __init__(self): 
     self.variable_a=10 

wann immer wir contructor von KlasseA nennen wie folgt

var = KlasseA()

wir indirekt nennend __ init __ Methode und für den obigen Code wird diese instanziiert Variable „variable_a "von var Objekt bis 10.

+0

Der Begriff ist "Konstruktor", nicht "Auftragnehmer", und in Python ist '__init __()' kein Konstruktor, es ist ein Initialisierer - der richtige Konstruktor ist '__neu __()'. –

+0

'__init__' * gibt *' None' zurück (wie jede Funktion, die nicht explizit einen Wert zurückgibt) - FWIW, das ist sogar der einzige Wert, den'____________ zurückgeben darf. –

1

init nicht und sollte nichts zurückgeben, außer keiner. Der Zweck von init, wie der Name sagt, ist, Attribute zu initialisieren.

Sie können tatsächlich versuchen, None in init zurückzugeben, aber nichts zurückzugeben, würde standardmäßig None in Python zurückgeben.

+0

Die einzige richtige Antwort bisher ... –