파이썬판다스 따라하기/2파이썬기초

#파이썬기초3편 - 함수 클래스

모두의 실험실 2023. 5. 24. 04:03
728x90

인간은 맨몸으로 수렵활동을 하다가 돌과 나무등

도구를 만들어 쓰고

그 도구들이 진화하여 지금은

기계 장비들이 그 역할들을 대신 하고 있음

이런것을 산업혁명 또는 자동화라고 부름

 

코딩 또한 마찬가지임

컴퓨터를 사용하여 10명 100명 1000명에게

보낼 이메일을 파이썬 코딩으로 한번에 보낼수 있음

 

집 안에 잘 살펴보면 자동화 도구들로 다 모여 있음

칼 가스레인지 샤워기 등등 모두 자동화 도구들임

칼이 없으면 손으로 잘라야 하고

가스레인지가 없으면 불피워서 라면을 끓여야하고

샤워기가 없으면 물을 받아서 바가지로 

퍼서 샤워를 해야함

 

칼의 사용처는 다양함

손님이 왔을때 사과깍는 용도로

감자전 먹고 싶을땐 감자 깍는용도로 사용됨

이처럼 도구들은 유용하며

집에 놔두고 계속 사용하는 것들임

계속 사용하는 것을 기억해야함

 

파이썬 코드도 마찬가지임

초보시절에는 다양한 실습을 목적으로

코드를 만들기 때문에 다음에 또 사용하지

못할 수도 있음

하지만 코드를 계속 짜면 점점 고도화 되기때문에

시간이 많이 걸림

그렇다고 안짤 수는 없음

그래서 있는 칼처럼

평소에 자주쓰는것들은 어딘가 잘 만들어서

다음에 쓸수 있도록 보관해 두어야함

 

이런것들이 코딩의 기본철학이자 인생의 철학이자

세상의 철학임

붕어빵을 손으로 만들지는 않음 틀을 만들어 놓고

계속 쓰는것과 같음

파이썬 코딩도 마찬가지임

 

우리가 배우는 내용이 중요하지만

내용보다 가치관과 철학이 더욱중요함

1 + 1은 2라는 사실과 구구단은 얼마나 고마운가

초등학교때 배워서 평생을 도와 주고 있지 않는가

 

코딩도 다음에 쓸것을 잘 만든다는

생각을 가지고 해야함

그래야 내가 편하고 내인생이 편해짐

 

파이썬 코딩 자동화의 기초가 되는것이 함수임

함수는 중학교때 처음 배웠음

무엇인지 기억이 안날 수 있지만 이것만 기억하면됨

붕어빵 찍어내는 틀처럼 무엇인가 계산을 해내는 틀임

def func_add(input1,input2):
    output = input1 + input2
    return output

result = func_add(1,2)
print(result)

-결과 (드래그로 확인가능)

3

 

def는 define의 줄임말이며 정의한다라는 뜻임

다시 말해서 이 함수를 정의한다라는 의미임

func_add는 함수 이름이며 input1, input2는 입력변수임input1과 input2는 이 함수 내에서만 사용됨

return은 함수 밖으로 전달 할 때 사용함

결과는 두 입력변수 1,2를 더한 3이 됨

 

클래스는 함수들을 모아 놓은 것임

그래서 좀더 큰 개념이라고 생각하면됨

하지만 단순히 함수들만 모아놓은것 보다

더 큰 특징들이 존재함

 

그중에 가장 큰 특징이 객체화, 상속화임

객체는 틀, 복사본이라고 이해하면 됨

상속은 우리가 알고 있듯이 부모가 자식에게

물려주는 그런 상속과 유사함

class calculator():
        
    def add(self,input1,input2):
        return input1 + input2
    
    def minus(self,input1,input2):
        return input1 - input2    

    def multi(self,input1,input2):
        return input1 * input2
    
    def divid(self,input1,input2):
        return input1 / input2   
    
    def add2(self,input1,input2):
        return self.add(input1,input2)
    
cc = calculator()
print(cc.add2(10,2))

-결과 (드래그로 확인가능)

12

 

문법을 간략히 설명해 보면

클래스는 내부의 함수를 메소드라함

메소드의 입력변수 맨앞은 self를 입력해야하고

메소드내부에서 함수를 사용할때도 self를 사용함

add2에서 add함수를 호출함

그리고 class를 사용할때는 객체화라고 함 calculator라는 붕어빵틀에서

cc라는 붕어빵이 나옴 이 붕어빵을 객체라고 함

cc가 될수도 있고 dd가 될수도 있음

이름이 다를 뿐임

그래서 사용할때는 cc.add2와 같이 점을찍고 메소드를 사용하면됨

 

클래스는 상속이라는 큰 특징이 있음

메소드를 추가하거나 변경할 수 있음

class calculator():
        
    def add(self,input1,input2):
        return input1 + input2
    
    def minus(self,input1,input2):
        return input1 - input2    

    def multi(self,input1,input2):
        return input1 * input2
    
    def divid(self,input1,input2):
        return input1 / input2   
    
    def add2(self,input1,input2):
        return self.add(input1,input2)
    
class calculator2(calculator):
        
    def power(self,input1,input2):
        return input1**input2
    
    def add2(self,input1,input2):
        print('This is addition method')
        return self.add(input1,input2)
    
cc2 = calculator2()
print(cc2.add2(10,2))
print(cc2.power(2,10))

-결과 (드래그로 확인가능)

This is addition method
12
1024

 

calculator()가 부모 클래스이며 calculator2는 자식 클래스임

자식 클래스는 새로운 클래스 이름을 정의하면서

괄호안에  부모클래스 이름을 넣어 주어야함

이것을 '상속 받는다'라고 하며

메소드를 추가 또는 덮어쓰기를 할 수 있음 

 

상속받은 자식 클래스 calculator2는 기본적으로

부모 클래스 calculator의 메소드 5개모두 가지고 있으며

calculator2에서 power 메소드를 추가 하였음

추가로 add2에는 print()를 추가하였고

이는 메소드가 변경으며 이것을 

오버라이딩이라 함

 

클래스는 클래스상속 메소드 오버라이딩 및 추가 기능을 가짐

 

태그

-------------------------------------------------------------

#python, #파이썬, #anaconda, #아나콘다, #기초, #클래스, #class, #import, #selenium, #셀레늄, #자동, #교육, #코딩교육, #coding, #chatgpt, #챗GPT, #로봇,

 

728x90
반응형