파이썬 독학 18

[19-4 파이썬] 인스턴스(instance), 상태(state)

인스턴스란? 클래스라는 청사진에서 객체를 생성해내는데, 하나의 객체만 생성하는 것이 아니라, 내가 원하는 만큼 무한대로 생성할 수 있다. 이전에 예를 들었던 백종원과 그의 프랜차이즈 음식점을 생각해보자., 백종원은 FoodStore라는 클래스에서 홍콩반점, 새마을식당, 역전우동 객체를 생성해냈다. 이 모든 것이 FoodStore의 객체이긴 하나 이들은 완전히 독립적이다. 파이썬에서는 이 객체들을 "인스턴스(instance)"라고 부른다. 객체란? 기본 청사진은 같지만, 나중에는 파는 음식도 다르고, 오는 손님들도 다르고, 마치는 시간도 다르게 된다. 즉, 어느 순간 속성도 메소드도 달라진다. 파이썬에서는 이 사실을 "상태(state)"가 달라진다고 표현한다.

[19-1 파이썬] 함수를 인수로 사용할 때> 괄호 사용하지 X

함수() 함수의 형태를 생각해보자. 우리는 함수를 쓸 때, 함수 이름 끝에 ()괄호를 붙인다. 이 함수를 활성화하겠다는 뜻이다. len(), list(), tuple(), add() 등 우리가 아는 함수를 사용할 때를 떠올려 보면 거의 대부분 이런 형식이다. functon(argument1, argument2, argument3) 함수를 호출할 때는 위의 형태이다. 괄호 안에 인수(argument)를 넣어준다. 그런데, functon(argument1, argument2=함수) 위의 경우처럼 함수의 인수로, 함수가 들어올 때 예컨데, onkey(key=key, fun=fun)의 경우에는 함수에 괄호를 붙이지 않는다. 예시를 보기 위해, 먼저 onkey()에 대해 알아보자. turtle의 매서드 중 하나인..

[18-7 파이썬] 예술 작품 만들기(파이썬 라이브러리 turtle, colorgram 이용)

파이썬 패키지 turtle과 colorgram을 이용하여 데미안 허스트 Damien Hirst의 spot 그림을 그려보자. 작품에서 이용될 색깔은 아래와 같다. color_list = [(230, 229, 227), (245, 233, 240), (232, 166, 63), (239, 241, 245), (47, 112, 155), (112, 152, 202), (210, 124, 164), (19, 128, 96), (150, 20, 57), (223, 201, 120), (230, 241, 237), (5, 176, 143), (172, 46, 86), (222, 77, 115), (163, 166, 37), (29, 35, 83), (226, 88, 45), (120, 173, 121), (45, ..

[16-6 파이썬] 패키지 package 이용하기, 패키지 속성, 메소드

모듈 = 각 파일 그 자체 패키지 = 많은 파일, 즉 많은 모듈을 모음 파이썬의 장점은 객체지향 프로그램이라는 점이다. 이 말은 즉, 내가 처음부터 끝까지 모든 것을 혼자 만들 필요가 없다는 거다. 기존에 만들어져 있는 패키지를 불러오면 된다. 오늘은 객체지향 프로그램인 파이썬의 장점을 이용해서 다른 사람들이 아주아주 잘 만들어놓은 패키지를 가져와 사용해보겠다. 이를 위해 먼저 pypi 사이트를 소개한다. 1. pypi란? pypi (Python package index) 다른 개발자가 만든 패키지를 찾을 수 있는 사이트이다. 파이썬 프로그래밍 언어를 기본으로 하며, 파이썬 커뮤니티에서 개발되고 공유된 소스 코드를 볼 수 있다. https://pypi.org/ PyPI · The Python Packag..

[16-1 파이썬] 객체지향 프로그래밍(OOP) vs 객체지향 프로그래밍

결론부터 말하자면, 파이썬은 객체지향 프로그래밍이다. 1. 절차지향 프로그래밍 객체지향 프로그래밍을 본격적으로 알기에 앞서, 객체지향과 반대되는 개념인, 절차지향 프로그래밍을 알아보겠다. 절차지향프로그래밍은. 영어로 Procedural Programming인데. Procedural의 뜻은 절차, 정해진 순서를 뜻한다. 절차지향 프로그래밍은 프로그래밍의 초기 형태이다. 기본적으로 위에서 아래로 일을 처리하며, 필요한 경우에는 함수 안으로 들어가서 일을 처리하고 원래의 순서로 돌아온다. 하지만 프로그램이 복잡해질수록, 내가 무슨 코드를 실행하고 있는지, 어디쯤에 있는지 알기가 어려워지고, 코드가 뒤엉켜 디버깅하는 작업도 힘들어진다. 자동차를 생각해보자. 자율주행 자동차를 만든다고 할 때, 바퀴, 몸체, 충격..