반응형
이번 포스팅에서는 파이썬의 일급 (시민) 객체(first-class citizen)에 대하여 공부를 해보고자 한다.
일급 (시민) 객체(first-class citizen)
일급 (시민) 객체는 OPP에서 사용되는 개념 중 하나를 말한다.
대입 연산자를 이용해 변수에 대입, 호출할 때 인수로 사용, 함수의 리턴 값으로 사용할 수 있다.
즉, 함수도 값으로 사용된다는 것이다.
함수를 변수에 대입하는 경우
함수를 정의한다.
def hello():
print("안녕")
정의한 함수를 호출한다.
a = hello()
print(a)
[실행결과]
안녕
None
함수를 변수에 대입한다.
my_hello = hello
my_hello()
your_hello = my_hello
your_hello()
[실행결과]
안녕
안녕
a = 함수( )인 경우 함수( )를 호출해서 그 반환 값을 a에 대입한다.
a = 함수인 경우 함수 객체를 변수 a에 대입한다. (함수에 a라는 이름을 추가. => 함수라는 이름과 a라는 이름 두 개로 호출할 수 있다.)
함수 호출할 때 인수(argument)로 사용하는 경우
함수를 정의한다.
def plus(n1, n2):
result = n1 + n2
print("더한 결과: ", result)
def minus(n1, n2):
print("뺀 결과: ", n1 - n2)
def multiply(n1, n2):
print("곱한 결과: ", n1 * n2)
처리할 로직은 있지만 처리할 때 사용할 값이 없는 경우에는 그 값을 매개변수로 받는다.
함수를 정의한다.
def calc(func):
n1 = 10
n2 = 20
func(n1, n2)
처리할 값을 가지고 있지만 어떻게 처리할지 로직(알고리즘) 이 없는 경우 처리할 로직(함수)을 매개변수로 받는다.
정의한 함수를 호출한다.
calc(plus)
[실행결과]
더한 결과: 30
곱한 결과: 200
뺀 결과: -10
함수를 반환(return) 값으로 사용하는 경우
함수를 정의한다.
def exam():
def inner1():
print(1)
def inner2():
print(2)
return inner1, inner2
정의한 함수를 호출한다.
f1, f2 = exam()
f1()
f2()
[실행결과]
1
2
반응형
'Back-End > Python' 카테고리의 다른 글
[Python] 정보 은닉(Information Hiding) (0) | 2022.09.27 |
---|---|
[Python] 객체지향 프로그래밍(OOP) (2) | 2022.09.26 |
[Python] 함수의 매개변수(Parameter) (0) | 2022.09.25 |
[Python] 함수(Function) 정의 및 호출 기본 (0) | 2022.09.24 |
[Python] 컴프리헨션(Comprehension) (0) | 2022.09.24 |