파이썬(python) 함수- 여러 개의 문장을 하나로 묶어 주는 역할
파이썬(python) 함수는 프로그램 실행 중 한 번 혹은 여러번 호출 될 수 있으며 매개변수를 이용해 다른 값으로 호출할 수 있다.
함수 내부에서 다른 함수를 호출할 수도 있다.
함수가 종료되면 함수를 호출한 곳으로 결과값을 전달하고, 함수를 호출한 다음 문장을 수행한다.
- 함수의 정의
- 함수 선언은 def로 시작해서 콜론(:)로 끝내고, 함수의 시작과 끝은 코드의 들여쓰리고 구분합니다.
- 시작과 끝을 명시해 주지 않는다.
- 함수 선언을 헤더 파일에 미리 선언하거나 인터페이스/구현같은 부분으로 나누지 않고 함수가 필요한 때 바로 선언하고 사용할 수 있다.
def <함수명>(인수1, 인수2, ...인수N): //함수객체를 만들겠다는 키워드,
(:)을 사용해서 함수 선언을 마침
<구문> // 함수가 하는 일에 대한 구문들을 적는 부분, 반드시 들여쓰기를 해야함
return<반환값> // 함수를 종료시키고 값을 전달하는데 사용함.
>>> def times(a,b):
... return a*b
...
>>> times
<function times at 0x03E49858> // 메모리 공간 어딘가에 함수 객체가 생성됨.
>>> times(10,10)
100
- return
- 함수를 종료시키고, 해당 함수를 호출한 곳으로 되돌아가게 한다.
- 오직한개의 값을 리턴 할 수 있다.
-여러 값을 튜플로 묶어서 처리할 수도 있다.
>>> def swap(x,y):
... return y,x
...
>>> swap(1,2)
(2, 1)
>>> a, b = swap(1,2)
>>> a
2
>>> b
1
>>> x = swap(1,2)
>>> type(x)
<class 'tuple'>
- 인수 전달
- 인수는 레퍼런스를 이용해 전달하다.
(함수의 인수는 호출자 내부갯체의 래퍼런스이다)
- 스코핑 룰
- 변수를 사용하려면 꼭 알아야 할 법칙.
- LGB 규칙 : 이름을 검색하는 규칙이 있다.
지역, 전역,내장 인 순서로 이름을 검색함.
(지역영역 - 함수 내부의 공간, 전역영역 - 함수 밖의 영역, 내장영역 -파이썬 자체에 정의한 내용 )
>>> x=1
>>> def func(a):
... return a+x
>>> func(1)
2
>>> def func2(a):
... x=2
... return a+x
>>> func2(1)
3
- 함수 인수
- 특별한 인수 모드를 제공한다.
기본 인수 값, 키워드 인수, 가변 인수 리스트, 정의되지 않은 키워드 인수 처리가 있다.
1. 기본 인수 값
- 함수를 호출할 때 인수를 지정해 주지 않아도 기본 값을 할당 되도록 하는 방법
2. 키워드 인수
-인수 이름으로 값을 전달하는 방식
>>> def connectURL(server, port): ... str = "http://" + server + ":" + port ... return str ... >>> connectURL("test.com","8080") 'http://test.com:8080' >>> connectURL(port="8080", server="test.com") 'http://test.com:8080' >>> |
- Lambda 함수
- 한 줄을 실행한 결과 값이 바로 기턴 값이 됩니다.
- 이름 없고, 함수 객체만 존재하는 익명함수를 만들수 있다.
- 필요한 곳 어디에서나 쓰일 수 있는 함수 이고 return 구문을 적을 수가 없다.
>>> g= lambda x,y: x*y >>> g(2,3) 6 >>> (lambda x: x*x)(3) 9 |
- 재귀적 함수 호출
-함수 내부에서 자기 자신을 호출하는 것
- pass
-pass 구문은 함수 및 클래스의 메서드에서 아무런 동장도 수행하지 않는다.
※아무것도 하지 않는 함수, 모듈, 클래스를 만들어야 할 경우 쓰인다.
즉 while true만 있는 경우나 class temp만 있는 경우 구문에 에러가 발생하기 때문에 사용
출처 : http://ygang.tistory.com/12
'프로그래밍언어 > Python' 카테고리의 다른 글
파이썬 Dictionary (0) | 2012.08.02 |
---|---|
파이썬- 배열 & 메소드(데이터 정렬하기) 2 (0) | 2011.11.02 |
파이썬 -배열 안의 데이터(데이터 정렬하기) 1 (0) | 2011.11.02 |
파이썬 - 파일 안의 데이터(데이터 정렬하기) (0) | 2011.11.02 |
파이썬 - 시간(time) 모듈 (0) | 2011.11.02 |