Python에 새롭게 추가되는 기능들. SeeAlso PythonTip

Built in functions

  • enumerate() : for문돌릴때 i값까지
  • isinstance(instance, class)
  • object : 최상위객체
  • staticmethod / classmethod : 클래스 정의시 따로 호출함
  • property(getMethod, setMethod) : 클래스정의시 이걸 만들어놓으면, 값을 읽을때 getMethod, 쓸때 setMethod를 자동으로 호출한다.
  • super(C,self) : 자신의 상위클래스 호출
  • bool(), True, False

List comprehension

2.0부터 사용된 리스트 내장기능

Toggle line numbers
   1 [(x,y) for x in seq1 for y in seq2]

Iterator of file

파일객체도 라인단위의 반복자 지원

Toggle line numbers
   1 >>> f = open('readme.txt') 
   2 >>> for line in f: 
   3         print line, 

Iterator / Generator / GeneratorExpression

See Iterator, Generator, GeneratorExpression, Decorator

내장자료형 서브클래싱

아래 코드는 의미하는 바가 크다. 문자열처리는 이런 방식으로 하는가 싶고, 내장자료형을 이런방식으로 상속받아서 쓰며, repr을 이용 적절하게 Recursion을 써먹는것도 눈여겨볼만하다.

Toggle line numbers
   1 class xmldic(dict): 
   2     def __repr__(self): 
   3         res = ['\n<dictionary>'] 
   4         for k,v in self.items(): 
   5                 res.append('<member>') 
   6                 res.append('<name>%s</name>' % k) 
   7                 res.append('<value>%s</value>' % repr(v)) 
   8                 res.append('</member>') 
   9         res.append('\n</dictionary>') 
  10         return '\n'.join(res) 
  11          
  12 d1 = xmldic({'one':1, 'two':2}) 
  13 d3 = xmldic({'numbers':d1}) 
  14 print d3 

source code encoding

2.3부터, Python소스코드의 인코딩 명시. 없으면 디폴트 IsoLatin1

Toggle line numbers
   1 #!/usr/bin/env python
   2 # -*- coding: UTF-8 -*-

Extended slice

시퀀스자료형에 모두 적용가능

Toggle line numbers
   1 >>> L = range(10) 
   2 >>> L[::2] 
   3 [0, 2, 4, 6, 8]
   4 >>> L[::-1]
   5 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 
   6 >>> s="abcd"
   7 >>> s[::2]
   8 'ac'

문자열메쏘드 zfill

자릿수를 맞춰야하는 문자열들 앞에 0 붙이기

Toggle line numbers
   1 >>> '45'.zfill(4) 
   2 '0045' 
   3 >>> '12345'.zfill(4) 
   4 '12345' 
   5 >>> 'goofy'.zfill(6) 
   6 '0goofy' 

PriorityQueue

web biohackers.net