7/12

채언·2022년 7월 12일
0

1. 패키지와 모듈

(1) 패키지란

  • 비슷한 기능의 모듈들을 한데 모아놓은 것을 패키지라고 한다. 새로운 디렉토리 calculator 라는 패키지 안에, addcal.py/ mulcal.py / divcal.py .. 등등 덧셈 곱셈 나눗셈 등의 기
    능을 하는 각자의 모듈들이 들어있는 것이다.

(2) 패키지 내의 모듈 사용

  • 모듈에는 함수가 들어있고, 모듈로부터 함수에 접근하기 위해서는 모듈명.함수명 으로 접근할 수 있다.

  • calc 라는 디렉토리를 만들고, addcal.py 라는 파이썬파일로 모듈을 만들어서 안에 add라는 함수를 작성하였고, 다른 어떤 0719라는 파이썬 파일에서 from calc impot addcal 이란 문장을 통해 calc 패키지로부터 addcal 모듈을 사용하기 위해 불렀다.

  • 패키지나 모듈을 직접 만들어 사용하는 경우,위의 사진처럼 같은 디렉토리 내에서 패키지도 있고 실행파일도 있는경우 사용이 가능하지만 같은 디렉토리에 없는 파일의 경우 패키지나 모듈을 불러 올 수 없다. venv/Lib/site-packages에 패키지 폴더를 넣으면 어디에서나 불러서 사용할 수 있다.

(3) 자주 사용하는 모듈

  • 수학과 관련된 함수로, 기본적으로 max() sum(), min() 함수는 가장 큰 값과 합, 가장 작은 값을 찾아주는 함수이다.

  • pow(a,b) 는 a 를 b 제곱 한 값을 내는 함수이고, round(a,b) 는 a를 소수점 b째짜리까지 나오게 그 다음에서 반올림하는 함수이다.

  • 기본 모듈인 math 모듈의 몇 가지 함수 이용. 절대값, 올림(소수점없는 정수를 구하되, 현재보다 큰 정수), 내림(소수점없는 정수를 구하되, 현재보다 작은 정수), 버림(소수점버림), 최대공약수, 팩토리얼, 제곱근 등의 함수가 있다.

import time

nowtime = time.localtime()

print(nowtime)

time.struct_time(tm_year=2022, tm_mon=7, tm_mday=19, tm_hour=16, tm_min=25, tm_sec=5, tm_wday=1, tm_yday=200, tm_isdst=0)

  • time 모듈을 사용하여 localtime() 함수를 쓰면 현재에 대한 정보값들이 출력된다.

2. 클래스와 객체

  • 파이썬은 객체 지향 언어로, 객체를 사용하며 속성과 기능으로 구성된다. 객체는 클래스로 부터 생성되며, 객체를 사용함으로서 코드를 재사용할 수 있어 편의성이 더 좋아진다. 객체에서 기능은 함수와 비슷하고 속성은 매개변수와 비슷하다.
  • 예를 들어, 속성(색깔,속도,브랜드)와 기능(후진,전진,정지)을 가지는 자동차 라는 클래스가 있다고 할 때 이 자동차 클래스를 통해 만들어질 수 있는 객체는 많으며, car1이라는 객체는 속성으로 (red,100,현대) car2라는 객체는 속성으로 (blue,200,기아) 이런식으로 속성값을 다르게 여러개의 객체를 생성해 낼 수 있다.

3. 클래스와 객체의 생성

  • 클래스명의 첫글자는 대문자로 작성한다. 기능은 함수와 같이 def 메소드명(self): 으로 선언하고, 클래스의 메소드명 () 안에는 self가 들어가야한다. _init__(self,a,b) 는 생성자로, 해당 클래스의 객체가 생성될때 동시에 호출되는 생성자 함수이다. self 란 객체 자신을 뜻하는 말로, 생성될 객체명이 들어갈 자리라고 생각하면 된다.

4. 객체와 메모리

  • 변수 car1 에 생성한 객체 Car('노랑',50) 을 저장할 때, 객체자체의 값을 저장하는것이 아니라 객체의 메모리 주소를 저장하고 이를 이용해 객체를 참조하기 때문에, car1은 레퍼런스 변수라고 한다.

(1)얕은 복사

  • 객체의 주소만을 복사하는것, 객체 자체가 복사되지 않는다. car1 = car2 는 같은 객체의 메모리 주소값을 저장하고 있는것이지 객체 자체가 복사된것이 아니다.

(2)깊은 복사

  • 객체의 주소가 아닌 객체 자체를 복사하는 것이다. car1 = car1.copy() 는 다른 메모리 주소(공간)에 같은 객체 자체를 하나씩 각자 가지고 있는것이다.
profile
화이팅!

0개의 댓글