모든 메서드의 첫 번째 인자는 self입니다.
클래스에 정의된 모든 메서드가 self를 필요로 합니다.
파이썬은 모든 메서드의 첫 번째 인자를 호출할 객체가 되도록 합니다.
객체에 메서드를 호출할 때 파이썬은 첫 번째 인자가 호출한 객체가 되로록 한다는 말이 무엇일까!
>>> class Strlen: def __init__(self,value=0): self.thing = value def how_len(self): return (len(self.thing))
이러한 구조를 갖게 됩니다.
함수 how_len또한 첫 인자를 self로 받고 있습니다.
>>> test = Strlen("Hello World") >>> test.how_len() 11 >>>
개발자 코드 test = Strlen("Hello World") ======= python : Strlen.__init__(test,"Hello World") 로 실행을 하게 됩니다.
개발자 코드 test.how_len ================= python : Strlen.how_len(test) 이런식이 되는거죠!
우선 연습삼아 사칙연산을 하는 클래스를 작성해보도록 합시다!
우선 피연산자 2개가 필요로 하겠죠??
one , two라고 하겠습니다.
더하기 , 빼기, 곱하기, 나누니 해서 가감승제라고 하죠!?
class cal 이라고 이름을 짓도록 하겠습니다.
그럼 함수는 총 4개가 필요하겠죠??
그러나 여기서 one , two의 값을 설정해주는 함수가 필요합니다!
그래서 총 5개의 클래스 함수가 필요로 합니다.
def sum(self): result = one + two return (result)
이런 형태로 구성을 했습니다. 덧셈한 값을 돌려주도록 하기 위한 리턴을 합니다!
결과를 볼까요??
테스트를 위해 덧셈 모듈만 따로 작성했습니다.
>>> def sum(one , two): result = one + two return (result) >>> a = 5 >>> b = 4 >>> c = sum(a,b) >>> print (c) 9 >>>
자 이제 함수는 작성하는 로직을 알아냈습니다. 나누기 곱하기 뺄셈도 같은 로직이겠죠??^^
>>> class cal: def set_data(self, one, two): self.one = one self.two = two def sum(self): result = one + two return (result) def sub(self): result = one - two return (result) def mul(self): result = one * two return (result) def div(self): result = one / two return (result)
이렇게 구성 할 수 있습니다.!!! 모두 이제 감이 조금 오시나요???
자 여기까지해서 기본적인 Class의 구조를 살펴 보았습니다. 이제 다음에는 상속의 개념을 알아보도록 합시다!
'프로그래밍 > Python' 카테고리의 다른 글
Python IDE - pycham 설치 가이드 (0) | 2015.02.20 |
---|---|
Class의 등장 3탄 상속?? (0) | 2015.01.01 |
Class의 등장 1탄 (0) | 2014.12.31 |
새로운 데이터 구조 딕셔너리(dictionary) (0) | 2014.12.31 |
중복 제거는 어떻게??? - 집합(set) (0) | 2014.12.29 |