Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pyhton 소개

Pyhton 소개

마이에트 사내 발표자료, 중원

JungWon2

July 31, 2013
Tweet

More Decks by JungWon2

Other Decks in Technology

Transcript

  1. 귀도 반 로섬 (Guido Van Rossum) 1989년 12월 25일 파이썬

    창시 ㅎㅎ 님들, 크리스마스 때 뭐함? Monty Python’s Flying Circus
  2. 파이썬의 특징 - 스크립트 언어 - Garbage Collection - dynamic

    typing - 엄청난 량의 라이브러리 - 쉬운 문법, 짧은 코드 원래 교육용으로 출발했다나…
  3. - 함수형, 객체지향 모두 지원 - 스크립트 언어인데, 바이트코드 배포도

    된다. exe 파일 배포도 된다. - C++, C#, JAVA 대부분의 문법을 모두 지원 - C++, C#, JAVA에선 불가능한 문법도 지원 - 언어 레벨에서 쓰레드도 지원
  4. 파이썬의 변수 int a; string str; int a[3] = {0,1,3};

    a = 10 str = ‘MyName’ A = [0,1,3] 이런 것 안됨
  5. x = 5 * 0.1 y = ‘helloWorld’ * 5

    값을 넣는데 대해 유연 다른 형끼리는 알아서 캐스팅 된다. (common Sense..) x = [1,2,3] y = [4,x,6] z =[4, [1,2,3], 5]
  6. 편리한 인덱스& 슬라이싱 x = ‘HelloWorld’ 뒤에서 3번째 문자를 출력하시오

    Y = x[-3] 거꾸로 출력하시오 Y = x[:-1] 2칸 띄워서 출력하시오 Y = x[::2]
  7. 파이썬의 제어문 제어문은 크게 딱 3개 (if, for, while) switch

    => X 마찬가지 common sense 다만 다른 언어처럼 {,} 블록을 쓰지 않음. if a > 1 : print ‘big’ else : print ‘small’ 들여쓰기로 구분. 여러 칸, 탭 상관없이 칸만 맞으면 됨 파이썬이 원래 교육용으로 시작했다고 이야기했었나?
  8. 파이썬의 함수 함수도 들여쓰기랑 :만 잘하면 됨. def add(a, b):

    return a+b 이런 것도 된다. def add(a, b): return a, b 이정도야… >>print add([1,2,3],[4,5]): [1,2,3,4,5]
  9. 파이썬의 함수 또 이런 것도 된다. def foo(): def goo():

    print ‘goo’ def boo(): print ‘boo’ goo() boo() 기본 인수도 물론 지원 def add(a, b=10): return a, b 가변 인수도 물론 지원 def add(a, *arg): return a, b 정의되지 않는 인수도 가능 def add(**kw): print kw => add(a=1,b=2)
  10. 파이썬의 함수 이것 또한 Common Sense.. def add(a,b) return a+b

    foo = add foo(1,2) 이런 건 뭐, 당연히 됨.
  11. 파이썬의 클래스 class g { private: int a; public: g(){};

    } 마찬가지 이런 것 안됨. 그럼 이렇게 하면 될까? class S1: a = 1
  12. 파이썬의 클래스 클래스의 네임스페이스와 클래스 인스턴스의 네임 스페이스는 다른 영역

    class S1: a = 1 x = S1() x.a = 10 print x.a => 10 print S1.a => 1 인스턴스 생성
  13. 파이썬의 클래스 클래스 인스턴스에 변수를 밖에서 넣어준다. class S1: pass

    x = S1() x.a = 10  x 인스턴스에 a 생성 x.b = 20  x 인스턴스에 b 생성 좀 이상하긴 하다
  14. 파이썬의 클래스 class S1: def __init__(self): self.a = 10 self.b

    = 20 print ‘__init__’ def __del__(self): print ‘__del__’ 대신 생성자에서 처리할 수 있음 self는 this 인스턴스 소멸자 생성자
  15. 파이썬의 메소드 class S1: def set(self, v): self.value = v

    print self.value x = S1() x.set(5) 메소드는 자기 인스턴스를 첫번째 인자로 받는다. 단, 정적 메소드는 self를 받지 않음 클래스 메소드는 self 대신 클래스를 받음
  16. 파이썬의 클래스 상속 class Base: print ‘Base init’ def f(self):

    print ‘Base’ class Derived(Base): pass d = Derived() d.f() Base Derived Base2 Derived Base1 다중 상속도 가능
  17. 파이썬의 클래스 상속 다이아몬드 상속도 가능 Base2 Derived Base1 Base

    Base2 Derived Base1 Base object에서 상속 받으면 탐색순서가 바뀜.
  18. 파이썬의 클래스 기타.. 특성상 모든 메소드는 가상함수임. 연산자, 인덱스, 슬라이딩

    모두 오버로딩 가능 과연 파이썬에서 누가 클래스를 쓸까?
  19. 파이썬 특성 조금 더.. Built-in 타입과 유저 정의 타입 구분이

    없고, 모두 접근&수정 가능 Built-in타입을 상속받아 쓸 수 있음. (list,dict,tuple..) Constant 타입을 만들 수 없다. - c++의 const, Java의 final 같은 기능 X C#/java의 리플렉션 수준이 아니라 그냥 다 볼 수 있음 클래스에서 private, protected 같은 접근 제한이 모두 안될 것 같지만, 의외로 private를 만들 순 있음. 하지만..