참조: https://blog.naver.com/parkjy76/30167615254 Python에서는 static(정적) 메소드를 데코레이터로 정의 할 수 있는데 @staticmethod, @classmethod를 사용한다. 이 둘의 차이점은 classmethod의 경우는 첫번째 인수가 클래스를 지정하는데 반해 staticmethod는 이런 룰이 없다. 이로 인해 상속받는 경우 동작이 달라진다. class foo(object): name = 'foo' @staticmethod def get_name_static(): print foo.name @classmethod def get_name_class(cls): print cls.name 실행 결과는 아래와 같다.>>> foo.get_name_static..
참조: http://hamait.tistory.com/827 Python에서는 Protected와 Private에 대한 개념이 없다. 그래서 __변수명(private), _변수명(protected)와 같은 방식으로 개발자끼리 약속하여 변수명을 지정한다. 그러다보니 변수값 설정할 때, 특정 범위를 넘어가면 에러가 발생하도록 처리할 수 없을 것이다. 이를 구현하기 위한 것이 @Property 이다. 아래와 같은 방식으로 구현하여 특정 변수값에 제한을 둔다.class Celsius: def __init__(self): pass def to_fahrenheit(self): return (self._temperature * 1.8) + 32 @property def temperature(self): print("..
퍼옴 : http://jhproject.tistory.com/109 다른사람들이 작성한 python 코드를 보다보면*args, **kwargs 를 심심치 않게 본다. 그냥 막연하게 "어떤 파라미터를 몇개를 받을지 모르는 경우 사용한다" 라고 알고 있었지만자세히 설명한 예 가 있어서 소개한다. *args- 파라미터를 몇개를 받을지 모르는 경우 사용한다. args 는 튜플 형태로 전달된다.예)? 1234567891011def print_param(*args): print args for p in args: print p print_param('a', 'b', 'c', 'd') #('a', 'b', 'c', 'd')#a#b#c#d **kwargs- 파라미터 명을 같이 보낼 수 있다. kwargs는 딕셔너리 형..
http://blog.naver.com/PostView.nhn?blogId=heartflow89&logNo=220954420688 메모리구조는 Static, stack, heap으로 구성된다. static: 전역변수, 정적 멤버 변수와 같이 static이 붙은 것들이 메모리에 남아있다. 그래서 자바 어디에서나 호출이 가능하다. stack: 데이터의 값이 저장되는 곳으로 종료되면 메모리가 해제된다. LIFO방식으로 처리하기 때문에 마지막 데이터만 의미가 있고 이전 데이터는 지워진다. 메소드가 끝나면 종료된다. heap: 참조형 타입의 데이터를 가지고 있다. 이때 stack은 heap의 메모리참조 주소값을 가지고 있다. 그래서 heap 데이터를 가져올 수 있다. heap에 저장된 데이터가 불필요하면 jvm이..
참조: http://www.whatwant.com/714여러 버전의 JDK를 사용하고 싶은 경우 때문에 알게된 명령어가 바로 "update-alternatives" 이다. 기본적인 사항을 한 번 살펴보기 위해서 java를 살펴보자. $ whereis java java: /usr/bin/java /usr/bin/X11/java /usr/local/java /usr/share/java 여기저기에 위치하고 있는 java 중에서 "/usr/bin/java"에 대해서 조금 더 자세히 살펴보면, $ ls -al /usr/bin/java lrwxrwxrwx 1 root root 22 6월 7 22:10 /usr/bin/java -> /etc/alternatives/java 잘 살펴보면, 일반적이지 않은 경로의 링크가..
참조: https://wikidocs.net/17445) 클래스 변수와 인스턴스 변수6.4절에서는 클래스의 네임스페이스와 인스턴스의 네임스페이스, 그리고 그 둘 사이의 관계에 대해 배웠습니다. 이번 절에서는 초보자들이 많이 어려워하는 개념 중 하나인 클래스 변수(class variable)와 인스턴스 변수(instance variable)에 대해 살펴보겠습니다.다음은 은행 계좌를 클래스로 표현한 것입니다. Account 클래스에는 생성자와 소멸자가 있습니다. 생성자 (__init__)가 클래스의 인스턴스가 생성될 때 자동으로 호출되는 함수라면 소멸자 (__del__)는 클래스의 인스턴스가 소멸될 때 자동으로 호출되는 함수입니다.>>> class Account: num_accounts = 0 def __i..
참조: https://wikidocs.net/17434) 클래스 네임스페이스클래스와 인스턴스의 차이를 정확히 이해하는 것은 매우 중요합니다. 이를 위해서는 먼저 네임스페이스라는 개념을 알아야 합니다. 네임스페이스라는 것은 변수가 객체를 바인딩할 때 그 둘 사이의 관계를 저장하고 있는 공간을 의미합니다. 예를 들어, 'a = 2'라고 했을 때 a라는 변수가 2라는 객체가 저장된 주소를 가지고 있는데 그러한 연결 관계가 저장된 공간이 바로 네임스페이스입니다.파이썬의 클래스는 새로운 타입(객체)을 정의하기 위해 사용되며, 모듈과 마찬가지로 하나의 네임스페이스를 가집니다. 먼저 Stock 클래스를 정의해봅시다.>>> class Stock: market = "kospi" >>> 파이썬 IDLE에서 dir() 내장..
참조: https://wikidocs.net/33[스레드를 다루는 threading 모듈]컴퓨터에서 동작하고 있는 프로그램을 프로세스(Process)라고 한다. 보통 1개의 프로세스는 1가지 일만 하지만, 스레드를 이용하면 한 프로세스 내에서 2가지 또는 그 이상의 일을 동시에 수행하게 할 수 있다. 간단한 예제로 설명을 대신하겠다.import threading import time def say(msg): while True: time.sleep(1) print(msg) for msg in ['you', 'need', 'python']: t = threading.Thread(target=say, args=(msg,)) t.daemon = True t.start() for i in range(100): ..
참조: https://wikidocs.net/32 evaleval(expression)은 실행 가능한 문자열(1+2, 'hi' + 'a' 같은 것)을 입력으로 받아 문자열을 실행한 결과값을 리턴하는 함수이다.>>> eval('1+2') 3 >>> eval("'hi' + 'a'") 'hia' >>> eval('divmod(4, 3)') (1, 1) 보통 eval은 입력받은 문자열로 파이썬 함수나 클래스를 동적으로 실행하고 싶은 경우에 사용된다.filterfilter란 무엇인가를 걸러낸다는 뜻으로, filter 함수도 동일한 의미를 가진다. filter 함수는 첫 번째 인수로 함수 이름을, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 자료형을 받는다. 그리고 두 번째 인수인 반복 가능한 자료형 요소..
- 파이썬
- Gradle
- ML
- serverless
- 머신러닝
- 모두의딥러닝
- web
- AWS
- Maven
- tensorflow
- Error
- spark
- python
- API
- executor
- spring
- BigData
- 점프투파이썬
- TDD
- mysql
- AI
- 중앙정보처리학원
- 텐서플로우
- Configuration
- Docker
- mybatis
- memory
- NIO
- Java
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |