클랙스의 정의에는 __init__ 라는 특별한 메서드가 있는데,
클래스를 초기화하는 방법을 정의한다.
이런 초기화용 메서드를 생성자 라고도 하며, 클래스의 인스턴스가 만들어 질 때 한번만 불립니다.
또한 파이썬에서는 메서드의 첫 번째 인수로 자신(자신의 인스턴스)을 나타내는 self를 명시적으로 쓴는것이 특징이다.
<간단한 class 생성하기>
class Man:
def __init__(self,name):
self.name = name
print("Initialized!")
def hello(self):
print("Hello" + self.name + "!")
def goodbye(self):
print("Good-Bye" + self.name + "!")
m = Man("David")
m.hello()
m.goodbye()
#결과값 :
Initialized!
HelloDavid!
Good-ByeDavid!
-설명 :
Man 이라는 새로운 클래스를 정의합니다.
그리고 Man 클래스에서 m 이라는 인스턴스(객체)를 생성합니다.
Man의 생성자(초기화 메서드)는 name이라는 인수를 받고 그 인수로 인스턴스 변수인 self.name을 초기화합니다.
여기서 인스턴스 변수는 인스턴스별로 저장된 변수입니다.
파이썬에서는 self.name처럼 self 다음에 속성 이름을 써서 인스턴스 변수를 작성하거나 접근할 수 있습니다.
여기서 실험 1....
m이라는 인스턴스를 생성해서 인수를 넣어도 인수로 받는것을 정의안하면 소용없음.
class Man:
def __init__(self,name):
self.name = "won-jae"
print("Initialized!")
def hello(self):
print("Hello" + self.name + "!")
def goodbye(self):
print("Good-Bye" + self.name + "!")
m = Man("David")
m.hello()
m.goodbye()
#결과값
Initialized!
Hellowon!
Good-Byewon!
2번째실험.
self라는것을 a로 바꿨는데 잘된다.. 뭐지.
class Man:
def __init__(a,name):
a.name = name
print("Initialized!")
def hello(self):
print("Hello" + self.name + "!")
def goodbye(self):
print("Good-Bye" + self.name + "!")
m = Man("David")
m.hello()
m.goodbye()
#결과값
Initialized!
HelloDavid!
Good-ByeDavid!
Tip ! 1
파이썬은 객체지향 언어이다.
객체지향 언어란 서로 연관되어있는 데이터(변수)와 연산(함수)를 그룹핑 한것이다.
함수와 변수가 많아짐에 유지보수가 쉽지않고, 추가적으로 여러개의 목적이 다른 코드들이 섞여
연관되어있던 코드 자체를 다른곳에 사용하지못한점에 객체지향언어가 생긴것.
Tip! 2
__init__함수
init이라는 단어는 "시작하다" 이다.
클래스를 선언하는 순간에 실행되는 함수입니다.
m = Man("david") 라고 할때
__init__함수(생성자)안의 내용만 실행하는것이다.
Self 는 클래스를 저장할 변수 이다.
실험 3.
m = Man() 라고 했을때
self = a 즉 ...
a.name = self.name 이 되고 ,
생성자에 self.name = David 라고 하였으니..
print(m.name) = David가 된다.
class Man:
def __init__(self,name):
self.name = name
print("Man 생성자 시작.")
m = Man("David")
print(m.name)
#결과값
Man 생성자 시작.
David
생각정리...
생성자는 초기화 하는 메소드 이다.
객체 생성하면서 자동으로 생성자를 먼저 실행시킨다.
***객체를 만들때 객체가 반드시 해야될 일이 있다면 , 그것을 별도의 메소드로 만들어서 사용자가 절차를 숙지하도록 하는것이 아니라 , 생성자에 절차를 포함시켜서
객체를 사용하는 사람이 그객체를 사용함에 있어서 숙지해야하는 절차를 더 줄이고 , 놓치지않을 수 있도록 생성자화
하는것이다. -생활코딩-
넘파이
넘파이는 외부 라이브러리이다.
외부라는 것은 표준파이썬에는 포함되지 않는다는것이다.
우선 넘파이 라이브러리를 사용할수있도록 import 해야한다.
직역: numpy를 np라는 이름으로 가져와.
import numpy as np
넘파이 배열 :
np.array()