이 글에서는 Python의 메소드, 속성, 반복자에 대해 자세히 설명합니다.
구성 방법:
구성 방법은 이전 예제에서 사용된 것과 유사한 init라는 초기화 방법을 나타냅니다.
객체가 생성되면 생성자 메서드가 즉시 호출됩니다.
>>> 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'
일반 메서드와 특수 생성자 메서드를 재정의합니다.
>>> 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!
슈퍼 함수
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!
속성
접근자를 통해 정의된 속성을 속성
>>> 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
속성 함수
>>> __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
반복자
반복자라고 합니다. 다음
>>> 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 문을 포함하는 모든 함수를 생성기라고 합니다. (yield 문을 사용하여) 값이 생성될 때마다 함수가 동결됩니다. 즉, 함수가 활성화되기를 기다리는 시점에서 함수가 중지되고, 함수가 중지된 지점부터 실행이 시작됩니다.
으르르르위 내용은 Python의 메서드, 속성, 반복자에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!