class 내에 정의된 함수를 메서드(method) 라 한다. 메인 코드에서 제공하는 인수(argument)를 적용하여 class 밖에서 class를 상속하여 계산한 결과를 instance 라 한다.
class 구성은 초기화 루틴 즉 def __nit__(self, name) 이 필수적이며 instance 연산 시 오직 한 번만 초기화하면 되며 메인 코드에서 별도로 불러서 상속 시킬 필요가 없다.
반면에 이 예제에서 “hello(self)” 나 “”goodbye(self)“ 의 경우는 일단 instance 연산을 위해 class Man을 불러 상속을 준비해야 하며 여기서는 하단 메인 코드의 ”m = Man(”Tom“)” 이 그 작업에 해당한다.
m.hello() 는 Man(“Tom”).hello()와 동일한 의미이다.
m.goodbye()도 Man(“Tom”).goodbye() 와 동일하다.
일단 class Man을 인수 “Tom”으로 한 번 호출했으므로 그렇게 초기화 된 상태에서 몇 번이고 다시 hello() 나 goodbye()를 사용할 수 있지만 다시 다른 인수 즉 예를 들자면 “Robert” 로 인수를 변경하게 되면 다시 초기화 한후 “Robert”에 대한 class Man(“Robert”)을 호출하여 다시 hello() 나 goodbye()를 사용할 수 있다.
class Man()을 다음과 같이 업데이트 하여 class Manwoman에서 “Mary”를 인수로 삼아 적용해 보자.
class Manwoman을 통해서 class Man 의 메서드 hello() 나 goodbye()를 사용할 수 있으며 아울러 업데이트된 메서드 love()도 사용이 가능하다.
class 코딩 심화응용
class Plusminus를 정의하자.
메서드 init 초기화에 self, numa 와 numb 즉 2개의 숫자를 인수로 받는다.
numa 와 numb를 self 로 둔다.
numa 에 1을 더하여 self.numc로 두자.
“initialized”를 출력한다.
메서드 plus(self)
self로 받은 두 개의 숫자를 합하여 sum으로 두자.
두 숫자의 합산을 문자열로 출력해 주고 sum을 출력하자.
※ print("Plus calculation: ", self.numa, "+", self.numb,"=", sum)
메서드 minus(self)
self로 받은 두 개의 숫자를 뺄셈하여 결과 subtract로 두자.
두 숫자의 뺄셈을 문자열로 출력해 주고 결과 subtract를 출력하자.
class Plusminus에 곱셈 연산을 업데이트 하는 class Product를 정의하자.
self 변수를 인수로 받는 메서드 multiply를 정의하자.
두 개의 sel 변수를 곱하여 product로 두자.
두 숫자의 곱셈을 문자열로 출력해 주고 결과 product를 출력하자.
메인 코드
두 숫자 5 와 3으로 class Plusminus를 호출하여 pm으로 두자
pm을 상속하여 plus()를 실행하자.
pm을 상속하여 minus()를 실행하자.
두숫자 5 와 3으로 class Product를 호출하여 mp로 두자.
mp를 상속하여 multiply()를 실행하자.
class Plusminus()에서 미리 계산해 둔 self.numc 변수 값을 불러 출력해 보자.
첨부된 코드를 다운받아 실행해 보고 나눗셈 루틴을 Product 클라스에 추가하여 실행해 보아라.
'인공지능 응용 공학' 카테고리의 다른 글
뉴론의 구조와 퍼셉트론, Shannon의 엔트로피, Cross Entropy? (0) | 2022.10.30 |
---|---|
Iris flower data를 이용한 Rosenblatt 퍼셉트론 파이선 코딩 (3) | 2022.10.29 |
Rosenblatt N = 2 Perceptron Weight Update 알고리듬 Processing 코딩 (0) | 2022.10.27 |
McCulloch과 Pitts, Rosenblatt, Minsky에 이르는 초창기 신경망 연구의 역사 명과 암 (0) | 2022.10.27 |
MNIST 딥러닝과 CNN 딥러닝 (0) | 2022.10.21 |