Programming/Python

Programming/Python

[method] instance method vs class method vs static method

1. instance method 인스턴스 메소드 가장 기본이 되는 메소드로 데코레이터 없이 선언한다. 관행적으로 메소드 맨 앞에 self라는 이름의 매개변수를 준다. '인스턴스'의 메소드라는 것이 핵심이다. 클래스로부터 인스턴스를 생성해야 사용할 수 있고 해당 인스턴스의 속성에 접근할 수 있다. class Counter: def __init__(self, value = 0): self.value = value def increment(self, delta = 1): self.value += delta def decrement(self, delta = 1): self.value -= delta counter = Counter() counter.value # 0 2. class method 클래스 매소드 ..

Programming/Python

[Python] 이터레이터 계속 반복하기 itertools cycle

iterater를 사용하면 iterable 객체를 반복적으로 접근할 수 있다. 하지만 한 사이클을 모두 반복하여 접근한 후에는 다시 처음으로 돌아가지 않고 접근이 끝난다. one = [1,2,3,4,5] one_iter = iter(one) for i in range(6): print(next(one_iter)) itertool - cycle itertool 모듈의 cycle 메소드를 이용하면 이터러블 객체에 무한히 반복하여 접근할 수 있다. from itertools import cycle one = cycle([1,2,3,4,5]) for i in range(100): print(next(one))

Programming/Python

[python] 환경변수 설정과 모듈만들기

모듈은 함수나 변수, class들을 모아 놓은 파일이다. 프로그램을 작성할 때 모든 코드를 하나의 파일에 작성하는 것은 매우 힘들고 아무도 그렇게 하지 않는다. 파일 여러 개에 나누어 코드를 작성할 때 다른 파일에서 또 다른 파일에 작성한 내용을 이용할 수 있는데 이것을 모듈이라고한다. 모듈은 자신이 직접 만들 수도 있고, 미리 만들어져있는 모듈을 사용할 수도 있다. 대표적으로 math 모듈이 있다. math는 내장 함수가 아니기 때문에 불러와서 사용해야한다. 이때 외부 모듈인 math 를 불러오기 위한 키워드가 import이다. 모듈을 만들 때 같은 파일경로 안에 존재하면 간단히 불러올 수 있다 ass_3_src, customers, car_rental은 폴더명이다. ass_3_src경로의 폴더에서 다..

Programming/Python

[python] 매직메소드 Magin Method

python에는 특수한 메소드가 있다 magic method라고 하는 것인데 함수의 이름 앞뒤에 언더스코어(_)가 두 개씩 붙어있는 것이다 class를 만들때 처음에 생성자같은 역할을 하는 __init__함수를 정의하는데 이것이 매직 메소드이다. 문자열 연산시 연산자가 오버로딩 되는 것처럼 이 형태의 함수가 파이썬에서 미리 정의되어있고, 사용자가 재정의(오버로딩, overloading)함으로써 사용할 수 있는 것이다. class Student : def __init__(self, name, dept, number, grade) : self.stu_name = name self.stu_dept = dept self.stu_number = number self.stu_grade = grade stu1 = S..

Programming/Python

[python] 함수

프로그래밍을 할 때 자주 사용하는 기능을 하나로 묶어놓을 수 있다. 이를 함수라고 하는데, 함수를 사용하면 코드를 조금 더 효율적으로 작성할 수 있다. 필요한 기능을 함수로 작성해두고 필요할때마다 호출해서 사용한다. 파이썬에 함수는 크게 두 가지로 나눌 수 있다. 내장함수 파이썬이 이미 가지고 있는 함수 ex) print(), len() 사용자정의함수 사용자가 정의해서 사용하는 함수 사용자정의함수 (User Define function) 1. 만드는 방법 키워드 def를 이용한다. 함수명 함수명은 변수명과 비슷한 방법으로 정한다. 키워드, 한글, 숫자로 시작, 중간 공백, 기존의 함수명 모두 X 일반적으로 단일 단어로 되어있는 함수는 사용하지 않는다.return 함수를 호출한 곳으로 결과값을 전달하는 역..

Programming/Python

[python] 제어문 Control Statement

조건문 if-else statement 논리값을 기반으로 실행코드를 분기시키는 제어문 파이썬은코드블럭을 표현하기 위해(조건을 쓸 때) {}를 사용하지 않고 대신 들여쓰기(indentation) 4칸을 함. if 20 > 30 : ##False print('Hello') else : print('haha') haha 반복문 for문 반복할 횟수를 일반적으로 알고 있을때 사용한다 a = [1, 2, 3, 4, 5] for i in a : print(i) 1 2 3 4 5 for i in range(5) : print('Hello World!') Hello World! Hello World! Hello World! Hello World! Hello World! whi..

Programming/Python

[Python]Data type 2 - Sequence, Text Sequence, Mapping, Set, Bool

(지난 포스팅에 이어서) 2. Sequence range 적은 양의 데이터로 큰 수를 표현할 수 있다. list, tuple같은 경우 n개의 데이터를 가지고 있으면 메모리도 실제로 그만큼 필요하지만 range은 실제데이터가 아닌 데이터 영역(range)에 대한 의미만 저장하기 때문에 작은 메모리공간으로 많은 데이터를 표현할 수 있다. range(시작값, 마지막값-1, 증가값) 정수만값으로 가진다 a = range(0, 10, 1) 기본값으로 시작값은 0, 증가값은 1으로 생략하면 기본값으로 지정이되어 작동한다. a = range(10) a = range(0, 10) 이 두 선언은 위의 선언과 정확히 똑같은 의미를 가진다. range와 함께 자주 쓰는 연산자로 in 연산자가있다. in 연산자는 안에 들어있..

Programming/Python

[python] id()함수과 숫자 객체의 메모리 주소 값

파이썬에서 id함수는 객체의 메모리주소값을 알려준다! 정확히 말하면 메모리 주소값에대한 해쉬값이다 C언어를 제외한 나머지 언어들은 메모리 주소를 직접적으로 조작할 수 없도록 디자인되어 있기 때문이다!! ※ 메모리 주소를 직접 조작하면 cracking 작업을 수행할 수 있다. id함수를 사용해서 생성한 객체들에 대한 주소값을 살펴보다보면 이상한 점을 발견할 수 있다. 분명 a와 b는 다른 변수로 선언했지만 주소값이 같게 나왔다. 이는 파이썬이 숫자를 다루는 특징때문이다. 코드를 짤 때 0~256까지의 숫자는 아주 많이 사용된다 그래서 파이썬은 메모리를 효율적으로 사용하기 위해서 0~256까지의 숫자에 한해서 이미 그 숫자가 만들어진 객체, 메모리가 있으면 새로운 객체를 만들지 않고 이미 만들어진 메모리를 ..

Heaea
'Programming/Python' 카테고리의 글 목록