Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Methoden, Eigenschaften und Iteratoren in Python
In diesem Artikel werden die Methoden, Eigenschaften und Iteratoren in Python ausführlich erläutert.
Konstruktionsmethode:
Die Konstruktionsmethode stellt eine Initialisierungsmethode namens init dar, die der in den vorherigen Beispielen verwendeten ähnelt.
Wenn ein Objekt erstellt wird, wird der Konstruktor sofort aufgerufen
>>> class FooBar: def __init__(self): self.somevar=42 >>> f=FooBar() >>> f.somevar >>> class fO SyntaxError: invalid syntax >>> class FooBar(): def __init__(self,value=42): self.somevar=value >>> f=FooBar('This is a constructor argument') >>> f.somevar 'This is a constructor argument'
Überschreiben allgemeiner Methoden und spezieller Konstruktoren
>>> class Bird: def __init__(self): self.hungry=True def eat(self): if self.hungry: print 'Aaaah...' self.hungry=False else: print 'No,thanks!' >>> b=Bird() >>> b.eat() Aaaah... >>> b.eat() No,thanks! >>> class SongBird(Bird): def __init__(self): Bird.__init__(self) #调用超类的构造方法 self.sound='Squawk!' def sing(self): print self.sound >>> sb=SongBird() >>> sb.sing() Squawk! >>> sb.eat() Aaaah... >>> sb.eat() No,thanks!
Superfunktion
super(SongBird,self)
>>> __metaclass__=type >>> class Bird: def __init__(self): self.hungry=True def eat(self): if self.hungry: print 'Aaaah...' self.hungry=False else: print 'No,thinks!' >>> class SongBird(Bird): def __init__(self): super(SongBird,self).__init__() self.sound='Squawk!' def sing(self): print self.sound >>> n=SongBird() >>> n.sing() Squawk! >>> n.eat() Aaaah... >>> n.eat() No,thinks!
Eigenschaft
Durch Accessoren definierte Eigenschaften werden Eigenschaften genannt
>>> class Rectangle: def __init__(self): self.width=0 #特性 self.height=0 #特性 def setSize(self,size): #通过访问器方法改变特性 self.width,self.height=size def getSize(self): #通过访问器方法访问特性 return self.width,self.height >>> r=Rectangle() >>> r.width=10 >>> r.height=5 >>> r.getSize() (10, 5) >>> r.setSize((150,100)) >>> r.width
Eigenschaftsfunktion
>>> __metaclass__=type >>> class Rectangle: def __init__(self): self.width=0 self.height=0 def setSize(self,size): self.width,self.height=size def getSize(self): return self.width,self.height size=property(getSize,setSize) >>> r=Rectangle() >>> r.width=10 >>> r.height=5 >>> r.size (10, 5) >>> r.size=150,100 >>> r.width
Iterator
Ein Iterator ist ein Generator mit next
>>> class Fibs: def __init__(self): self.a=0 self.b=1 def next(self): self.a,self.b=self.b,self.a+self.b return self.a def __iter__(self): return self >>> fibs=Fibs() >>> for f in fibs: if f>1000: print f break >>> it=iter([1,2,3]) >>> it.next() >>> it.next() >>> class TestIterator: value=0 def next(self): self.value+=1 if self.value>10: raise StopIteration return self.value def __iter__(self): return self >>> ti=TestIterator() >>> list(ti) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Yield-Generator
Jede Funktion, die eine Yield-Anweisung enthält, wird als Generator bezeichnet. Jedes Mal, wenn ein Wert generiert wird (mithilfe der yield-Anweisung), wird die Funktion eingefroren, d. h. die Funktion stoppt an diesem Punkt und wartet auf ihre Aktivierung. Nachdem die Funktion aktiviert wurde, beginnt die Ausführung an dem Punkt, an dem sie gestoppt wurde
>>> nested=[[1,2],[3,4],[5]] >>> def flatten(nested): for sublist in nested: for element in sublist: yield element >>> for num in flatten(nested): print num 2 4
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Methoden, Eigenschaften und Iteratoren in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!