[제로베이스] CH1. Python 기초 - 모듈, 객체, class

정해성·2023년 6월 10일
0

제로베이스

목록 보기
6/36
post-thumbnail

모듈

모듈이란 함수나 변수 또는 클래스를 모아 놓은 파이썬 파일이다. 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다. 파이썬에 내장된 내장 모듈을 사용할 수도 있고 다른 사람들이 이미 만들어 놓은 모듈을 사용할 수도 있고 내가 직접 만들어서 사용할 수도 있다.

모듈 사용법

# 불러오는 방법
import operator

# 다음처럼 줄인표현으로 간단하게 불러올수도 있다.
import operator as op

대표적인 내장 모듈

모듈 이름설명
sys파이썬 시스템과 대화를 가능하게 합니다.
exit() - 종료.
argv - 명령어 라인 인수에 접근합니다.
path - 시스템의 경로에 접근합니다.
ps1 - '>>>' 파이썬의 프롬프트를 변경합니다.
string문자열을 처리할 수 있도록 해준다.
atoi/f/l - 문자열을 integer/float/long 로 변환합니다.
find - 하부문자열을 탐색합니다.
split - '단어'의 부분을 이용합니다.
upper/lower - 대소문자 변환
math많은 수학적 함수에 접근하도록 해준다.
sin,cos 등등 - 삼각 함수
log,log10 - 자연로그 그리고 상용로그
ceil,floor - 상한값과 하한값
pi, e - 자연 상수

이외에도 operator, os 등등 있지만 암기하는 것 보다 그때그때 필요한 기능을 인터넷에 검색하며 사용하도록 하자.

모듈 만들기

먼저 .py 파일을 만들어야 한다.

 # module1.py
 def add(n1,n2):
 	return n1+n2

만든 모듈 불러오기

# module1 모듈 불러오기
import module1

# 사용시 모듈이름.모듈내함수 방식으로 사용한다.
result = module1.add(24, 5)
print(result)

# 출력
29
# module1 모듈에서 특정 기능만 불러오기
from module1 import add

# 이 경우 모듈이름을 안붙여도 된다.
result = add(24, 5)
print(result)

# 출력
29

객체

파이썬은 객체지향 프로그래밍 언어로 객체는 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 값을 저장 할 변수와 작업을 수행 할 메소드를 서로 연관된 것들끼리 묶어서 만든 것을 객체라고 할 수 있다.

크게 보면 변수와 함수 와 같은 기능이 모여 객체를 만들고, 여러 객체를 모아놓은 것을 모듈이라 볼 수 있다.

다음과 같은 예시로 객체를 표현해 볼 수 있다.

class

파이썬에서 객체를 class 키워드로 만들 수 있다.

클래스 예시

## 자동차를 의미하는 car라는 클래스를 정의
class Car():
	
	## 생성자, 속성을 의미함.
	def __init__(self, color, length)
		self.color = color
		self.length = length

	## 기능 1
	def go_front(self):
		print("go_front")

	## 기능 2
	def go_back(self):
		print("go_back")

## 객체 생성 => 클래스이름(필요한 생성자 내용 정의)
car1 = Car("red",240)
car2 = Car("blue",180)

class 내부 용어 설명

class person():
 	# 클래스 변수, 클래스 내에서 선언한 변수
	# 클래스를 사용하는 모두에게 공용으로 사용되는 변수이다. 클래스 변수는 클래스 내외부에서 "클래스명.변수명" 으로 엑세스 할 수 있다.
	count = 0
  
	# Initializer(생성자), Initializer는 클래스로부터 객체를 만들 때, 인스턴스 변수를 초기화하거나 객체의 초기상태를 만들기 위한 문장들을 실행하는 곳이다.
 	def __init__(self,H,W):
		#인스턴스 변수, 클래스 정의에서 메서드 안에서 사용되면서 "self.변수명"처럼 사용되는 변수를 인스턴스 변수(instance variable)라 하는데, 이는 각 객체별로 서로 다른 값을 갖는 변수이다
 	    self.weight = W
 	    self.height = H
 	    person.count += 1
	
	#인스턴스 메소드,인스턴스 변수에 엑세스할 수 있도록 메서드의 첫번째 파라미터에 항상 객체 자신을 의미하는 "self"라는 파라미터를 갖는다. 인스턴스 메서드는 여러 파라미터를 가질 수 있지만, 첫번째 파라미터는 항상 self 를 갖는다.
	def BMI(self):
		bmi = (self.weight)/(self.height*0.01)**2
		print(f'Your BMI is : {bmi}')  
 	# 정적 메소드, self 파라미터를 갖지 않고 인스턴스 변수에 엑세스할 수 없다. 따라서, 정적 메서드는 보통 객체 필드와 독립적이지만 로직상 클래스내에 포함되는 메서드에 사용된다.
 	def greating(name):
 	    print(f'nice to see you, {name}')
 	
	# 클래스 메소드, cls 라는 클래스를 의미하는 파라미터를 전달받는다.클래스 메서드는 이렇게 전달받은 cls 파라미터를 통해 클래스 변수 등을 엑세스할 수 있다.
 	def count_person(cls):
 	    print(f'def call count : {cls.count}')
  
Sam = person(168,46)
jack = person(189,72)

Sam.BMI()

person.greating('paul')

person.count_person(person)

# 출력
Your BMI is : 16.298185941043087
nice to see you, paul
def call count : 2
profile
코린이 공부중

0개의 댓글