본문 바로가기

Languages/Python5

Python multiple inheritance with diamond hierarchy super를 사용해 multiple inheritance를 구현하다 보면, 다른 언어와는 다른 특성을 발견하게 됩니다. 예제와 그 실행 결과를 보시죠. class Mixin(object): def create(self, str): print str + ".t" class MixinA(Mixin): def create(self, str): super(MixinA, self).create(str+".a") #Mixin.create(self, str) class MixinB(Mixin): def create(self, str): super(MixinB, self).create(str+".b") #Mixin.create(self, str) class Aggregate(MixinB, MixinA): def __i.. 2014. 12. 11.
Abstract Base Class 예제 in Python import siximport abc @six.add_metaclass(abc.ABCMeta)class MyAbstractClass(object): @abc.abstractmethod def abstract_method(self): while False: yield None def public_method(self): self.abstract_method() class MyConcreteClass(MyAbstractClass): def abstract_method(self): ''' if this method is omitted, following error is raised when public_method is called against an object. TypeError: Can't instant.. 2014. 12. 5.
파이썬(Python)을 배워야 할 다섯가지 이유 1. 다양한 기능을 갖춘 언어가 필요하다면 "실용주의 프로그래머(Pragmatic Programmer)"라는 책을 보면 일년에 하나 정도의 새 언어를 배우라는 조언이 있어요. Peter Norvig라는 사람이 쓴 "Teach Yourself Programming in Ten Years"라는 에세이를 봐도, 적어도 여섯 개의 "종류가 서로 다른" 언어를 10년간 배우라는 조언이 있지요. 뒤집어 이야기하면, 세상에는 여섯 가지 부류의 언어가 있다는 이야긴데요. 대충 정리해보면 다음과 같습니다. (1) 클래스 추상화(class abstraction)를 제공하는 언어 (2) 함수형 추상화(functional abstraction)를 제공하는 언어 (3) 문법 추상화(syntactic abstraction)을 지.. 2014. 1. 1.
[Python] 신속하게 소수 리스트를 구하는 방법 이 방법은 http://stackoverflow.com/questions/2068372/fastest-way-to-list-all-primes-below-n-in-python에 공개된 방법입니다. 아래에는 결과만 보여드립니다. import itertools def erat2( ): D = { } yield 2 for q in itertools.islice(itertools.count(3), 0, None, 2): p = D.pop(q, None) if p is None: D[q*q] = q yield q else: x = p + q while x in D or not (x&1): x += p D[x] = p 이 함수를 실행하는 함수를 다음과 같이 정의합니다. def get_primes_erat(n): r.. 2013. 9. 30.