1일차 학습 정리

강의 복습 내용

4. Python Object Oriented Programming

  • OOP characteristics
    Visibility (가시성)
    -> Encapsulation (캡슐화) 라고도 함
    가시성을 제한하지 않으면 어디서든 객체에 접근할 수 있는 public으로 설정된다.

private
속성 이름 앞에 밑줄 두개 (__)를 붙여서 지정한다.
같은 클래스에 속한 메서드에서는 비공개 필드에 직접 접근 가능

@property : property decorator로 숨겨진 변수를 반환할 수 있게 해준다

class ClassName(object):
    def __init__(self):
    	self.__items = []
    def add_item(self, product):
    	self.__items.append(product)
    	print("new item added")
    else:
    	raiseValueError("InvalidItem")
    
    @property
    def items(self):
    	return self.__items
def gen_power(exp):
    def wrapper(f):
        def inner(*args):
            result = f(*args)
            return exp**result
        return inner
    return wrapper

@gen_power(2)
def raise_two(n):
    return n**2
    
print(raise_two(7))

562949953421312

exp에 2가 들어가고 wrapper의 f 자리에 raise_two가 들어가서 *args에는 n이 들어가게 된다. f(n) = raise_two(n)이 된다.
결과는 exp^raise_two(n)이 되어서 raise_two(7)은
2^(7^2)로 2^49 = 562949953421312이 나오게 된다.

decorator를 써본 적이 없어서 한번 정리하고 넘어간다.

과제 수행 과정/ 결과물 정리

과제를 수행하는데 정규표현식을 사용할 일이 생겨서 정규표현식에 대해서 살짝 정리하고 넘어간다.

import re

s = re.compile('[0-9]')
all_num = s.findall('1577-1577')

나는 문자열에서 숫자만 빼내는 것을 원한다. 정규표현식이 생각이 나서 검색을 했고 과제에 쓰인 부분만 정리한다.

re.compile은 어떤 정규식을 사용할지 결정하는 단계이고
그렇게 생성된 변수 s에는 여러가지 method를 사용 가능하다.

match(): 문자열의 처음부터 정규식과 매치되는지 조사
만족할 시 <_sre.SRE_Match object at 0x01F3F9F8> 와 같은 match object를 반환한다.

search(): 문자열 전체에서 정규식과 매치되는 게 있는지 조사한다.
만족할 시 match()와 같이 match object를 반환한다.

findall(): 문자열에서 정규식과 매치되는 단어를 모두 리스트 형식으로 반환한다.

finditer(): findall()과 비슷하지만 결과를 iterator object로 반환한다. iterator 안에는 match object가 존재한다.

위의 코드에서 all_num은 ['1','5','7','7','1','5','7','7']을 반환한다.

피어세션 정리

  • 자기소개
  • 그라운드 룰
  • 팀명 정하기

학습 회고

파이썬 기초에 대해서는 꽤나 많이 익숙해졌다 생각했는데 딥러닝에서 class를 활용하는 부분이 자주 나와서 이 부분만은 조금 더 집중해서 듣고 검색을 해서 공부를 하였다. 기초를 짚고 넘어가는 부분이라서 수월했지만 꼭 필요한 과정 같기도 하다.

좋은 웹페이지 즐겨찾기