본문 바로가기

파이썬/사용법

[python] 파이썬 함수(Function) 정리

안녕하세요!

이번 글에서는 파이썬의  함수(Function)에 대해서 알아보려고 합니다.

 

1) 함수

2) 함수를 정의하기

2-1) DocString 

2-2)함수를 정의하면 내부적인 동작

 

순서로 알아보겠습니다.


1) 함수

함수는 input을 넣으면 일련의 과정을 거처 output이 나오는 개념 입니다.

우리는 크게 3가지만 신경쓰면 됩니다.

 

1) 뭘 전달할지

2) 어떤 과정을 거칠지

3) 뭘  내보낼지

 

크게는 이 3가지 내용입니다.

 

 

2) 함수를 정의하기

def FunctionName(parameter):
	"""docstring"""
    
    innerActionCode
    
    return Class object or fuction or variable 



def hello():
    """안녕하세요라고 말하는 함수"""
    print("안녕하세요")
    return "안녕하세요"

 

위에서 함수는 정의 부분과 body 부분으로 나누는데요 

def 는 함수를 정의한다는 말입니다.

it must be followed by the function name 그다음에은 함수 이름이 따라와야 하구요 

괄호로 둘러싼 형식의 parameter를 작성을 해야합니다.

그리고 함수 body의 시작은 콜론 다음줄의 indented 된 후 부터 시작입니다.

함수 body의 시작부터는 string literal을 선택적으로 사용할 수 있는데 명칭은 Docstring이라고 부릅니다.

 

2-1) DocString 

내부적으로 1번째 줄에는 docstring이 위치할 수있습니다.

docstring은 함수에 대한 설명을 적을 수 있으며

docstring을 작성하는 습관은 아주 좋은 습관이라고 말하고 있습니다.

파이썬의 장점은 가독성에 있기에 잘 읽도록 도와주는 것은 모두 좋은 행동인거같습니다

""" """ double quotation mark 3쌍으로  작성합니다.

 

 

2-2) 함수를 정의하면 내부적인 동작

함수를 정의하면 함수에서만 사용할 변수를 위해 local symbol table 이 생성됩니다.

이제 우리가 변수를 assignment하면 local symbol table에 올립니다.

 

반면에 변수는 local symbols table을 먼저 참조하는데요 

그다음에는 둘러싼 함수symbol tables를  찾습니다.

그다음에는 global symbol table을 찾구요

마지막에는 built-in name을 찾습니다

이래도 없으면

 

그러므로 전역변수와 지역변수는 함수 내에서 직접적으로 할당되어 질 수 없습니다.

우리가 함수 내부에서 변수를 assignment 하면 local symbol table에 올리는데,

변수를 참조할 때는 local symbol table에서 찾고나서 위의 순서대로

variables of enclosing function table에서도 찾고

global -> built-in 순으로 뒤지기 때문에

전역변수나 바깥 함수에 있는 값을 가져와서 수정할 수 가 없다는 말입니다.

 

예시를 보여드리겠습니다.

x = 10  # 전역 변수

def foo():
    x = 20  # 지역 변수
    print("foo 내부 x:", x)

foo()  # foo 내부 x: 20
print("전역 x:", x)  # 전역 x: 10

def bar():
    global x
    x = 30  # 전역 변수 변경
    print("bar 내부 x:", x)

bar()  # bar 내부 x: 30
print("전역 x:", x)  # 전역 x: 30

# Global variable은 함수 안에서도 읽을 수는 있지만 같은 값이 함수 내부에도 있고
# 수정을 위해서는 glboal 이라는 키워드를 가지고 수정을 해주어야합니다.



 

 

 

 

.