Language/Python

Module, Classes,Instance

inji_ 2023. 7. 4. 23:31

1. Module(모듈)

① 모듈 정의

모듈은 파이썬 정의와 문장들을 담고 있는 파일이다.

모듈은 이미 완성되어 있어 사용자가 가지고와서 그 모듈내의 객체와 객체멤버 사용한다.

 

② import 예시

import random

A=[1,5,6,8,7,6]
random.shuffle(A)
B=random.choice(A)
print(A) #[8, 7, 6, 1, 6, 5]
print(B) #8

모듈 내에서, 모듈의 이름은 전역 변수 __name__ 으로 제공된다.

import random

name=random.__name__
print(name) #random

random함수내에 shuffle을 쓰려면 항상 random.shuffle()으로 사용해야하는데, 이것이 불편하다면, 특정함수만 import할 수 있음.

from random import shuffle

name=['Valeria', 'Ines', 'Clara', 'Patria', 'Juan', 'Jose']
shuffle(name)
print(name)

 

2. Classes(클래스)

① 클래스 정의

 

 

- 클래스 = 과자 틀.

클래스(class)란 똑같은 무언가를 계속 만들어 낼 수 있는 설계 도면(과자 틀),

객체(object)란 클래스로 만든 피조물(과자 틀로 찍어 낸 과자)을 뜻한다.

 

- 사용자가 직접 객체를 선언하고 객체 멤버를 구성하여 사용.

 

- 클래스에 의해 생성된 객체인스턴스라고 부르며 클래스는 용도와 목적에 맞게 상속을 통한 인스턴스화, 인터페이스 구현이 가능.

 

 

- 클래스 안에 구현된 함수 = 메서드(method)

 

 

② 모듈과 클래스의 차이점

 

- 객체 멤버들을 캡슐화 시킨 후 가져다 사용한다는 부분에서는 동일하지만, 모듈은 import시켜 자유롭게 사용하지만, 클래스는 목적게 맞게 각 프로세스에 상속하여 사용함.

 

- 모듈은 내부 멤버 변경하여 사용할 수 없지만, 상속받은 클래스는 멤버를 자유롭게 변경할 수 있음.

 

③ 클래스 구조 만들기 

class Calculator:
	def __init__(self, first, second): # 메서드의 매개변수 
    		self.first = first 	  # 메서드의 수행문
    		self.second = second	  # 메서드의 수행문
   	def add(self):
        	result = self.first + self.second
        	return result

 

▶ 생성자란-> 객체가 생성될 때 자동으로 호출되는 메서드

    메서드명으로 __init__를 사용하면 해당 메서드는 생성자가됨.

 

▶  self

a=Calculator

파이썬 메서드의 첫 번째 매개변수 이름은 관례적으로 self를 사용한다.

객체를 호출할 때 호출한 객체 자신이 전달되기 때문에 self라는 이름을 사용.  self말고 다른 이름 사용 가능.

 

④ 그 외 특징 - 클래스의 상속, 매서드 오버라이딩

 

3. Instance (인스턴스)

① 인스턴스 정의

 

인스턴스는 클래스에 의해 만들어진 객체이다. 예를 들어 클래스를 과자틀이라고 한다면, 인스턴스는 만들어진 과자이다.

클래스를 이용하여 인스턴스를 계속적으로 만들어 낼 수 있다.

 

cf. 클래스의 객체(object)가 소프트웨어에 실체화되면 이제 그것을 인스턴스(instance)라고 부른다.

 

 

 

 

'Language > Python' 카테고리의 다른 글

for/ while  (0) 2023.07.04