일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 디자인
- dart
- linux
- Code Generation
- 맥
- 개발자
- 유데미
- 유데미 러닝크루
- manim
- 가상환경
- 프로그래밍
- 수학 애니메이션
- 개발자도서
- 다트
- 플러터
- 코딩
- command
- 책
- 위젯
- flutter
- column
- 개발
- 파이썬
- 디자인패턴
- 명령어
- 한빛미디어
- 도서
- 리눅스
- vscode
- python
- Today
- Total
목록파이썬 (18)
승상의 코딩 블로그
class Operation: @staticmethod def add(a, b): return a+b Operation.add(1, 2) # 3 함수위에 @staticmethod 가 붙은 코드를 종종 볼 수 있습니다. staticmethod 로 설정된 함수는 인스턴스로 만들어서 사용할 수 있고, 인스턴스 생성없이도 사용할 수 있습니다. 대신, 클래스 내의 속성에는 접근할 수 없습니다. staticmethod 는 언제 사용하면 좋을까요? def add(a, b): return a + b add(1,2) # 3 "Q.staticmethod 함수는 클래스 내부의 데이터에 클래스 함수처럼 접근할 수 없는데, 그냥 add 함수를 만들어 써도 되지 않을까요?" 이러한 함수가 하나뿐이라면 단순히 add 를 써도 좋습..
디자인 패턴은 반복적이고 보편적으로 일어나는 문제에 대한 해결방안을 제시해줍니다. 그 중 가장 인기있는 패턴인, 팩토리 패턴(Factory Pattern)에 대해서 알아보려고 합니다. 팩토리 패턴은 객체 생성과 관련된 패턴입니다. 객체를 어떻게 생성하는지에 대해서 사용자에게 숨김으로써, 객체 생성 로직은 캡슐화되고 추상화됩니다. 이는 다른 코드와의 결합도를 줄여줍니다. ## 기본예제 class BankAccount: def deposit(self): pass @staticmethod def createAccount(bankType, value): if bankType == 'KB': return KBAccount(value) elif bankType == 'Woori': return WooriAccoun..
파이썬(python)에서 클래스에 사용되는 self 를 왜 써주는 것일까? 메모리와 연관시켜봐야한다. 멤버 변수와 멤버 함수 class Calculator: def __init__(self, x): self.x = x def add(self, a): return self.x + a Calculator 클래스는 초기화 때 넣은 값에 따라, 1을 더해주는 계산기, 2를 더해주는 계산기, ... 등을 만들 수 있다. 이 클래스는 어떻게 메모리에 관리되어야 할까? 복잡한 이야기는 생략하고 간단하게 생각해보자. 클래스의 멤버 변수는 생성하는 인스턴스에 따라 달라질 수 있다. 즉, 멤버 변수 별로 메모리를 할당 받을 필요가 있을 것이다. 그러나, 멤버 함수는 로직은 동일하고 사용하는 변수만 다르다. (동일한 코드에..
파이썬 3.7부터 사용되고 있다. 그 이전버전은 dataclass 라이브러리를 따로 설치해야 한다. type hint 는 버전마다 조금씩 다르게 사용되므로 참고해주시기 바랍니다. 아래 코드는 파이썬 버전 3.10 으로 작성하였습니다. 기존에는 데이터를 구조화하기 위해서는 아래와 같이 클래스로 작성하는 경우가 많았다. 직원을 구현하는 클래스를 구현해보자. class Employee: def __init__(self, firstName, lastName): self.firstName = firstName self.lastName = lastName print(Employee(firstName="Yang", lastName="SeungSang")) # 출력값: dataclass 가 있기 전에는 __init_..

python3.5 이상부터 타입힌트를 사용할 수 있다. 각 파이썬 버전마다 타입힌트를 지원하는 범위가 조금씩 다르기도 하다. 그러나 많은 차이가 있지는 않다. 프로그래밍 언어에는 C, C++ 처럼 각 변수 등의 타입을 지정해주는 정적 타입 언어가 있다. Python 은 C,C++ 과 달리 동적 타입 언어이다. 즉, 파이썬은 코드에서 직접 타입을 지정하지 않는다. 코드가 실행될 때 파이썬이 알아서 타입(ex. integer, string, ...)을 추론한다. 파이썬처럼 타입을 추론해주면, 개발자는 더 편하고 빠르게 개발가능할 것이라고 생각할 수 있다. 또한, 덕타이핑을 통해 다형성을 유연하게 적용할 수도 있을 것이다. (잘 모르시겠다면, 타입을 직접 정해주지 않기 때문에(사용가능한 범위를 제한함) 사용가..
파이썬 3.4 부터 Enum 이 추가되었다. 기존에는 Enum 을 직접 구현하여 썻었는데, 추가됨에 따라 편리해졌다. Enum 을 사용하면, 범위에 대한 경계선을 만들 수 있다. 이를 통해, 코드의 가독성도 높일 수 있다. 또한 코드 완성(힌트) 를 통해 코드 작성 시 생길 수 있는 에러도 줄일 수 있다. 기본 from enum import Enum class Fruit(Enum): APPLE = 1 BANANA = 2 ORANGE = 3 클래스 형태로 위와 같이 Enum 을 사용할 수 있다. >>> Fruits.APPLE >>> Fruits.APPLE.name 'APPLE' >>> Fruits.APPLE.value 1 클래스에서 선언한 열거형 멤버는 Fruits.APPLE 로 접근하여 사용할 수 있다...

Walrus Operator 가 파이썬 3.8부터 추가되었다. Walrus Operator는 ":="를 통해 사용할 수 있습니다. Walrus(바다코끼리)에서 알 수 있듯이, 바다코끼리의 눈과 이빨이 연산자와 비슷하게 생겼습니다. 왈러스 연산자(Walrus Operator) 왈러스 연산자(Walrus Operator)는 표현식에서 변수에 값을 할당할 수 있게 해 줍니다. 리스트, 딕셔너리, 함수 호출 등은 expression(표현식)이라고 한다. 표현식은 값을 가지는 것이라고 생각하면 됩니다. 이전에는 표현식에 값을 할당할 수 없습니다. 왈러스 연산자는 코드를 간결하게 만들어줍니다. 기존에는 연산의 결과를 저장하는 부분과 사용하는 부분이 분리되어 있다 보니, 불필요해 보이는 코드의 양이 많아 보입니다. ..

가상환경 가상환경은 파이썬과 그 패키지를 격리할 수 있다. 패키지를 격리함으로써 여러 가지 이점을 얻을 수 있다. 예를 들어, 하나의 컴퓨터에 여러 프로젝트를 개발하고 있다고 하자. 하나의 프로젝트는 A 라이브러리의 1.x 를 사용해야 하는데, 다른 프로젝트는 A 라이브러리의 2.x 를 사용해야 한다면, 디펜던시 충돌이 일어난다. 가상환경을 통해, 각 프로젝트가 의존 라이브러리가 있는 환경으로 구성해줄 수 있다. (라이브러리가 업데이트되면서, 기능이 삭제되거나 인터페이스가 변경되는 등의 상황이 벌어질 수 있으므로, 각 프로젝트가 의존하는 라이브러리의 버전을 관리하는 것은 중요하다) 가상환경 설정 파이썬을 설치하면 가상환경 설정을 위한 venv 모듈을 기본으로 사용할 수 있다. 아래와 같이 명령어를 입력하..