티스토리 뷰

개발자 로그/Python

함수

현 알트만 2024. 9. 10. 19:21

Keyword : 함수의 형태, 매개변수, 가변인수, isinstance()

 

 

1. 함수의 형태

 

함수의 형태에 대해서 알아보자. 함수의 형태는 크게, 입력, 처리, 출력으로 구성되어 있다. 입력은 일반적으로 '()' 안에 매개변수를 입력하는 과정이다. 이는 생략이 가능하다. 두 번째는 처리이다. 이는 statement로 구성되어 있는데, 어떠한 동작을 처리한다. 마지막으로는 출력이다. 앞서 처리된 것에 의해서 어떠한 출력을 할 것인가에 대해서 다룬다. 이는 생략이 가능하다. 

 

2. 매개변수

 

매개는 어떤것과 어떤 것을 연결 짓는다는 의미이다. 함수에서는 매개 변수를 통해서, 함수 외에서 선언된 어떤 값을 함수 안으로 불러들인다. 위 예시를 보면, hello(name)이라는 함수를 정의하고, 사용자가 입력한 name에 해당하는 매개변수를 이용하여, 인사문을 print하게 되는 것을 알 수 있다. 

 

 

3. 가변인수 

 

가변 인수는 말 그대로, 변할 수 있는 인수이다. 즉, 인수 값에 들어가야 할 인수 개수가 정함이 없고, 사용자의 입력에 따라서, 달라질 수 있다는 것이다. 가변인수를 표현하는 것은 변수 앞에 '*'를 입력하면 된다. 위와 같은 경우 *args로 가변 인자를 표현한 것을 볼 수 있다. 그리고 hello('홍길동', '일지매', '강우동')이 입력되었는데, 후에 이 값이 하나 하나씩 함수 안에 print문 안에 지정된 위치로 들어가 print된 것을 확인할 수 있다.

 

 

4.isinstance()

 

이번에 다루볼 것은 isinstance(x,y)함수이다. instance는 객체지향 프로그래밍 언어에서 class 속성을 가진 것을 의미한다. isinstance(x,y)함수는 x라는 값이 y의 인스턴스인지 여부를 판단하는 함수이다. 만약에 x가 y의 인스턴스라면 True를 그렇지 않으면 False를 반환하게 된다. 위 예시를 살펴보면, 리스트 자료형인 a가 있는데, 그 아래에서 isinstance()함수를 이용하여, 튜플 자료형인지, 리스트 자료형인지 판별하여 프린트하도록 구성되어 있다. tuple인가를 묻는 print문에서는 False를, list인가를 묻는 print문에서는 True가 반환된 것을 확인할 수 있다.

 

5. LEGB 규칙 

LEGB 규칙은 변수를 다루는 범위(scope)와 관련된 기준이다.

 

1.Local(L): 로컬 범위는 함수 내부에서 정의된 변수이다. 함수가 호출될 때 생성되며 함수가 종료되면 사라진다. 함수 안에서는 로컬 변수가 우선으로 참조된다.

 

2. Enclosing(E): 둘러싸는 범위가 중첩된 함수의 경우, 내부 함수에서 외부 함수로 거슬러 올라가며 찾는 변수를 의미한다. 내부 함수에서 변수를 참조할 때, 그 함수가 내부 함수에 없으면 외부 함수의 변수를 찾는다.

 

3. Global(G): 글로벌 범위는 파일 수준에서 정의된 변수이다. 파일 내 어디서든 접근할 수 있다. global 변수를 함수 내에서 그대로 받아서 사용하고자 하면, global 이하 변수명을 입력하면 된다.

 

4. Built-in(B): 빌트인 함수는 파이썬 내장 함수를 의미한다. 예를 들면 print(), len()과 같은 함수가 있다. 

'개발자 로그 > Python' 카테고리의 다른 글

[실습] 워드 클라우드  (0) 2024.09.11
정규표현식  (0) 2024.09.10
제어문(조건문, 반복문)  (0) 2024.09.09
딕셔너리(dictionary) 자료형  (0) 2024.09.06
집합(set) 자료형  (1) 2024.09.06