IT/프로그래밍

[파이썬] 일급객체 [패스트 캠퍼스 챌린지 50일]

뜻밖의 행복 2022. 3. 14. 00:01
반응형

안녕하세요?

뜻밖의 행운입니다. 

이제 패스트 캠퍼스 도전 마지막 50일 입니다.

50일 동안 빠진적 없이 잘 끝낼 수 있게 도와준 

제 운에 감사해야겠네요 진짜 별일 없이 강의 한번씩 꼬박 듣게 해준

운이 따르지 않으면 끝내지 못할 일이죠 

 

아직 챕터는 무지막지하게 많이 남았는데 

50일 도전중에 마지막 남은 항목은 파이썬 함수 고급입니다. 

 

오늘 배운 내용은 일급 객체였습니다.

객체도 참 여러가지 종류가 있네요 

그 중에서 일급 객체는 기존의 객체와 어떤것이 다르길래 일급 객체라고 하는지 

다시 한번 배운 내용을 정리해보겠습니다.

 

우선 아래 조건을 만족하는 객체를 일급 객체라고 하네요 

 

일급객체 조건
 1. 데이터 처럼 사용이 가능하다. 
 2. 매개변수에 넘겨 줄 수 있다.
 3. 리턴값으로 사용될 수 있다. 

 

그럼 각 특징들을 살펴 보면

# 1. 데이터 처럼 사용이 가능하다.

# 1) 함수를 변수에 할당 가능
def func(x, y):
    return x+y

add = func
print(add(3,4))

# 2) 리스트(튜플, 딕셔너리 등)에 할당 가능
def mul(x, y):
    return x * y

def div(x, y):
    return x / y

calculator = [mul, div]
print(calculator[0](5,6))

# 2. 매개변수에 넘겨 줄 수 있다.
def inputData():
    data = input("데이터 입력>>>")
    return data

def start(func):
    print("입력한 데이터는", func())

start(inputData)

# 3. 리턴값으로 사용될 수 있다. 
def plusTen(a):
    return a + 10

def func(x):
    return plusTen(x)

print(func(5))

간단한 예제로 알 수 있습니다.

 

네 실제로 

def func(x, y):
    return x+y

add = func
print(add(3,4))

함수를 변수처럼 할당하여 사용하는 것을 볼 수 있습니다.

결과도 7이 나오네요!?

 

이것은 약간 헷갈릴 수 있는데 간단한 예제로 잘 따라가면 이해가 됩니다.

inputData 함수에서 받은 내용을 리턴하는데 그 리턴한 값을 다시 함수에서 받아서 

결과를 뿌립니다.

 

def mul(x, y):
    return x * y

def div(x, y):
    return x / y

calculator = [mul, div]
print(calculator[0](5,6))

mul, div 딱 봐도 곱하기와 나눗셈입니다. 

그것을 리스트로 할당하고 값을 넣으니 

실제로 잘 동작하는 것을 볼 수 있습니다.

 

이것도 너무나 간단한 예제입니다.

def plusTen(a):
    return a + 10

def func(x):
    return plusTen(x)

print(func(5))

이것도 이렇게 간단한 함수를 바로 알 수 있습니다. 

func에 5를 넣으면 15가 나오는데 

func 함수 자체가 plusTen 함수의 retrun이 받아 오는 것입니다.

PlusTen을 보면 a + 10 이라 여기에 5가 더해져서 실제로 15가 나오는 것을 볼 수 있습니다.

 

반응형