Boostcamper's TIL (2)
2021/08/03
학습한 내용
Python Basic
Python Object-Oriented Programming
현실 세계를 모델링해 속성과 행동을 가지는 객체를 만드는 객체지향 프로그래밍에 대해 공부했다. 객체지향 프로그래밍의 의미는 프로그래밍 언어에 따라 큰 차이가 없어서 문법적 차이점을 익히는데 집중했다.
//java class
class Student{
private String name;
private String major;
private int age;
public Student(String name, String major, int age){
this.name = name;
this.major = major;
this.age = age;
}
//getter()
//setter()
//method()
}
#python class
class Student(object):
def __init__(self, name, major, age):
self.name = name
self.major = major
self.age = age
가장 큰 차이점은 java, c++ 언어에서는 클래스를 생성할 때 가장 먼저 생성자 함수가 실행되어 멤버 변수를 초기화 할 수 있다.
python 에서는 def __init__ 객체 초기화 예약 함수가 실행 되어 인스턴스가 갖는 특성들을 정의한다. 이때 파라미터 self는 생성된 인스턴스 자기 자신을 의미한다.
#python class
class Student(object):
def __init__(self, name, major, age):
self.name = name
self.major = major
self.age = age
self.__private = True
def __str__(self):
return "Hi. My name is %s" % (self.name)
@property
def private(self):
return self.__private
student = Student("kim", "software", 20)
print(student.__str__())
#"Hi, My name is kim"
__ 는 특수한 예약 함수나 변수, 맨글링으로 사용된다.
private 변수를 선언할 때 __ 을 변수 앞에 붙여 사용하면 외부 접근이 금지된다.
@property decorator를 사용해 숨겨진 변수를 반환할 수 있는 함수를 만들 수 있다.
First-class objects
파이썬의 함수는 일급함수
- 변수, 데이터 구조에 할당 가능
- 파라메터 전달이 가능
- 리턴 값으로 사용 가능
# 변수에 할당 가능
def sum(x, y):
return x+y
f = sum
print(f(2,3))
# '5'
# 함수를 파라메터로 사용가능
def formula(method, val):
return method(val, val + 2)
print(formula(f, 4))
# '10'
AI Math
딥러닝 학습 방법
확률론
통계학
코드리뷰
피어세션에서 다른 캠퍼님들이 사용한 코드를 보면서 좋아보이는 것을 배우고 복습한다.
- str.strip()
str.rstrip() 함수는 오른쪽 여백을 제거하는 함수로 알고 있었다. 그래서 자연스럽게 str.strip()은 문장의 처음(왼쪽)여백을 제거하는 함수로 인식했다. 알고보니 str.strip()은 양쪽 모두 여백을 제거해주는 함수라는 것을 다른 캠퍼분이 알려주셔서 정확히 알게 되었다.words = " Hello, World " print(words.strip()) # "Hello, World" print(words.rstrip()) # " Hello, World"
- 리프리헨션
리스트 리프리헨션을 학습하고 익숙해지기 위해 최대한 많이 사용하려 했는데 str.join(리프리헨션)이 가능하다는 것을 다른 캠퍼분의 코드를 보고 배웠다.words = "Hello World" result = '-'.join([w if w == 'o' for w in list(words)] print(result) # "o-o"
- str.split()
split() 함수 파라메터에 아무것도 넣지 않으면 한칸 여백을 기준으로 자르는 줄 알았는데 아무것도 넣지 않으면 공백의 길이에 상관없이 자를 수 있다는 것을 배웠다.words = " hi my name i s choi " print(words.split()) # ["hi", "my", "name", "i", "s", "choi"]
끝
캠퍼분들과 코드리뷰를 하는 시간에 많은 것을 배울 수 있었다. 지금까지 코딩하면서 처음 내 코드를 다른분에게 보여주고 피드백 받는것이 처음이었는데 새로운 경험이었다.
Author And Source
이 문제에 관하여(Boostcamper's TIL (2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@choihj94/Boostcampers-TIL-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)