본문 바로가기

python

(17)
python 메서드 오버라이딩과 다형성 오버라이딩(Overriding) 상속에서 쓰이는 개념 부모클래스의 메서드를 자식클래스에서 재정의 하는것 이름이 같은 메서드가 자식클래스에서 사용되면 부모클래스 메서드는 무시된다. 같은 이름의 함수가 있으면 자식의 함수가 우선 python에선 오버로딩 불가능! 오버로딩 코드를 간단하게 예시들어본다. class Parent: def hi(self): print("하이") class Child(Parent): def hi(self): print("안녕하세요") if __name__ == "__main__": a = Child() a.hi() # 안녕하세요가 출력됨만약 부모 클래스의 hi도 출력하고 싶으면 `super()`를 사용하면 된다. class Parent: def hi(self): print("하이")..
python 다형성(Polymorphism) 다형성이란 무엇인가? 상속관계 내의 다른 클래스들의 인스턴스들이 같은 멤버 함수 호출에 대해 각각 다르게 반응 하도록 하는 기능이다. 연산자 오버로딩도 다형성을 지원하는 중요한 기술이다. 다형성의 장점 적은 코딩으로 다양한 객체들에게 유사한 작업을 수행시킬 수 있습니다. 프로그램 작성 코드량이 줄어든다. 코드의 가독성을 높여준다.
python 객체지향(OOP) 객체지향에서 객체(Object)란 무엇인가? 객체는 어떤 속성(attributes)이나 값(Value), 함수(methods)를 가진 데이터이다. 객체는 모든 클래스의 베이스 클래스이다. 코드로 쉽게 이해하자면 class Obclass: attribute = value def method(): pass 이런식으로 구성되어있다. 그렇다면 클래스에 대해 알아보자. 클래스(class) 객체 단위로 프로그래밍한다는 것은 구체적으로 어떻게 하는 것인가? 위 내용에서 객체를 정의할 때, 객체는 모든 클래스의 베이스 클래스라고 했다. 객체는 이미 선언된 클래스를 기반으로 만들어진다는 말이다. 예를들어 class1(attributes, value, method) class2(attributes, value, metho..
python 객체지향(OOP) 설계 원칙 oop를 활용하여 프로그램 설계할때의 5가지 원칙 객체 지향의 5가지 원칙을 이용하여 프로그램을 설계할 수 있다. SRP(Single Responsilbility Principle) : 단일 책임 원칙 하나의 클래스&메서드는 단 하나의 책임을 가져야 한다는 의미이다. 단 하나의 기능만을 가지는 것을 의미하며 해당 기능이 변경될 때에만 클래스가 변경될 수 있다는 뜻이다. 또한 하나의 기능을 수행하는 클래스는 재사용성이 높아지고, 객체가 결합도가 최소가 된다. (단일 책임 원칙 예제) class BookService: def findBookById(query): # DB에서 찾아오기 # Log 파일에서 찾은 정보 쓰기위 클래스에서 사용되는 메서드는 DB에서 책을 찾아오고 찾은 정보를 Log파일에 기록하는 2..
python 정적메소드 python의 정적메소드란? 정적메소드는 클래스에서 직접 접근할 수 있는 메소드이다. class에서 직접 접근할 수 있는 메소드는 @staticmethod와 @classmethod가 있다. python에서는 정적메소드임에도 인스턴스에서 접근 가능하다. staticmethod 파이썬에서 사용법은 @staticmethod라는 데코레이터를 사용하여 정의한다. 인스턴스 메소드처럼 self라는 인자를 사용안해도 된다. class A: @staticmethod def add(a, b): return a+b if __name__ == "__main__": a = A() a.add(1,2) 사용법은 이러하다. classmethod classmethod도 사용법은 @classmethod라는 데코레이터를 사용하여 정의할 ..
python @property에 대해서 접근제어자 접근 제어자에는 public, private, protected가 있다. python은 다른언어와 달리 접근 제어자가 없고, 작명법으로 접근을 제어할 수 있다. 사용법은 아래에 있다. public -> 아무런 표시가 없다 private -> 두개의 밑줄(언더바)을 적용할 수 있다. protected -> 한개의 밑줄(언더바)을 적용할 수 있다. 코드로 사용하면 이렇게 된다. class Example: def __init__(self): pass def public(self): print("public") def _protected(self): print("protected") def __private(self): print("private")get / set 다른 언어에서 private를 사용..
python 개발환경 구축 pyenv-virtualenv install homebrew 설치하기 homebrew설치 방법은 해당 블로그 python 환경설정에 나와있으니 잠깐 보고오자! pyenv / pyenv-virtualenv 설치하기 pyenv 설치하기 $ brew install pyenvpyenv의 설치가 완료되었으면 pyenv-virtualenv를 설치한다. $ brew install pyenv-virtualenv위의 사항들이 잘 설치되었는지 확인하려면 pyenv install -l 명령어로 확인 가능하다. 해당 구문을 입력하면 python읠 버전 목록들이 나온다. 그 중 하나를 선택해서 버전을 다운하면 된다. 여튼 python 버전들이 잘 나오면 된다. 환경설정 vi을 실행하여 환경설정에 필요한 명령어를 입력하자 여기서 ~/.zshrc는 zsh을 사용할때이고 ~/..
python 설치 및 환경 설정 python install 설치할 python의 버전은 3.6.2 버전이다. homebrew install homebrew install url 해당 url로 들어가서 해당 구문을 터미널에 붙여넣기 해서 사용한다. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 위 명령어를 입력해서 homebrew를 다운받자. 이후 잘 다운받았는지 확인하는 법은 터미널에서 $ cd /usr/local/bin $ ls brew 터미널에서 해당 구문들을 입력하여 brew가 나오면 정상적으로 다운받아진것이다. 환경변수(PATH) 설정 위에서 디렉토리 이동이 있었기에 제일 처음 디렉토리로 이동 한다. ..