전체 글(55)
-
8. 객체(2) - 맹글링, 세 가지 메소드 타입, 덕 타이핑
1)private 네임 맹글링파이썬에는 특수한 형태의 변수 이름이 사용된다. __(언더스코어 두개)를 속성 이름 앞에 붙이면 클래스 정의 외부에서 그 속성을 볼 수 없게된다. 1234567891011class Person(): def __init__(self,name): self.__name=name @property def name(self): print('inside the getter') return self._name @name.setter def name(self, name): print('inside the setter') self.__name=namecs 이렇게 정의된 Person 객체에서 directly 객체.__name을 불러내려고 하면 에러가 뜬다.**물론 객체._Person__name..
2016.10.27 -
7. 객체(1)-객체 생성하기, 상속
1)객체 생성파이썬의 객체에서 초기화 역할을 담당하는 것은 __init__(self) 함수이다. 첫번째 인자는 반드시 self이며, 객체를 생성할 때 받을 객체의 내부 정보를 self 뒤에 인자로 적어주면 된다.-->이때 self는 객체 내부에서 '자기자신'을 가리키는 변수이다.-->모든 클래스 정의에 __init__를 포함할 필요는 없지만, __init__를 통해 같은 클래스의 변수끼리 구분을 용이하게 한다. 예) Jack과 Lucy는 서로 다른 Person이지만, __init__를 이용해 둘을 구분할 수 있을만한 처리를 하지 않으면 내부상으로는 차이가 없을것이다. 아래의 Person클래스는 생성시 sname과 sage를 받아 객체 내부에 각각 name과 age값을 지정하는데 이용한다. *pass 는 ..
2016.10.25 -
6. 모듈, 패키지, 프로그램
이전까지는 파이썬 기본 대화식 인터프리터를 이용해 코딩했다. 코드를 폭 넓게 활용하기 위해서는 스탠드얼론 프로그램을 만들 필요가 있다. 책에서 따로 툴을 추천하지 않아서 예전에 봐두었던 파이참을 사용했다. https://www.jetbrains.com/pycharm/download/ 1)모듈파이썬에서는 .py 확장자의 코드 조각 파일을 모듈module이라 한다.import문을 사용해서 외부에서 생성한 모듈을 임포트할 수 있고, import 뒤에는 .py 확장자를 지운 파이썬 파일명만 입력하면 된다.import하고자 하는 파일을 같은 디렉터리에 넣고 불러주면 되는데, 다른 경로에 있는 파일을 불러오고 싶을 경우 아래처럼 원하는 경로를 추가할 수 있다. 경로 내에서 중복된 이름의 모듈이 있는 경우 먼저 찾은..
2016.10.23 -
5. 클로져, 람다, 제너레이터, 예외처리
*클로져(Closure)*정의는 '어떤 함수의 내부에 선언된 함수로 상위 함수가 호출될 때 동적으로 생성되며 상위 함수가 전달 받은 인자를 알고 있는 함수' 이다.123456789101112131415def outer(arg): def inner(): return "I know outer's argument : "+arg return inner a=outer("hello")b=outer("bye") a() "I know outer's argument : hello" b() "I know outer's argument : bye"cs *익명함수 람다(lambda())*람다는 하나의 라인으로 된 간단한 작은 함수들을 여러 개 정의할 때 유용하다. 자주쓰이는 함수라면 이름을 붙여 정의하는 것이 좋겠지만, 익명..
2016.10.17 -
4. 함축(컴프리헨션), 함수
5)컴프리헨션(Comprehension)컴프리헨션(함축)은 하나 이상의 이터레이터로 부터 자료구조를 만들 때 번거로움을 줄여주는 기능이다.리스트, 딕셔너리, 셋, 제너레이터를 컴프리헨션으로 생성할 수 있다. 튜플은 불가능하다! 리스트의 컴프리헨션은 아래 예제에서 확인 가능하듯이 [표현식 for 항목 in 순회 가능한 객체 if 조건] 의 형식으로 사용가능하다.123456789101112131415161718number_list=[number for number in range(1,6)]print(number_list) [1,2,3,4,5] #튜플 언패킹으로 두개 이상의 for 절을 사용하는 것이 가능하다.cells=[(row,col) for row in range(1,2) for col in range(..
2016.10.14 -
3. 루프, 순회(이터레이션)
1) 코멘트, 다음 라인에 이어서 쓰기 12345#코멘트를 쓸 수 있다.alphabet='abcedfg'+\ 'hijklmnop'+\ 'qrstuv'+\ 'wxyz'cs 2) if, elif, else12345678first=Truesecond=Falseif first: print("FIRST!")elif second: print("SECOND!")else: print("nothing...")cs 3) while, else, break12345678counter=5while counter>0: sentence=input("String to swap-case [type q to quit]: ") if sentence==q: break print(sentence.swapcase())else: print("다..
2016.10.14