>  기사  >  백엔드 개발  >  파이썬 함수

파이썬 함수

高洛峰
高洛峰원래의
2016-11-23 10:38:171069검색

함수는 단일 또는 관련 기능을 구현하는 데 사용되는 체계적이고 재사용 가능한 코드 세그먼트입니다.

기능은 애플리케이션 모듈성과 코드 재사용을 향상시킬 수 있습니다. 여러분은 Python이 print()와 같은 많은 내장 함수를 제공한다는 것을 이미 알고 있습니다. 그러나 사용자 정의 함수라고 하는 자신만의 함수를 만들 수도 있습니다.

함수 정의

원하는 함수로 함수를 정의할 수 있습니다. 다음은 간단한 규칙입니다.

함수 코드 블록은 def 키워드로 시작하고 뒤에 옵니다. 함수 식별자 이름 및 괄호().

수신되는 모든 매개변수와 인수는 괄호 안에 넣어야 합니다. 매개변수는 괄호 안에 정의할 수 있습니다.

함수의 첫 번째 줄에서는 선택적으로 함수 설명을 저장하는 데 사용되는 독스트링을 사용할 수 있습니다.

함수 내용은 콜론으로 시작하며 들여쓰기됩니다.

Return[표현식]은 함수를 종료하고 선택적으로 호출자에게 값을 반환합니다. 표현식 없이 반환하는 것은 None을 반환하는 것과 같습니다.

구문

def 함수 이름(매개변수):

"Function_docstring"

function_suite

return [표현식]

기본적으로 매개변수 값과 매개변수 이름은 함수 선언에 정의된 순서대로 일치합니다.

다음은 문자열을 입력 매개변수로 가져와 이를 표준 디스플레이 장치에 인쇄하는 간단한 Python 함수입니다.

def printme(string):

"수신 문자열을 표준 디스플레이 장치에 인쇄"

문자열 인쇄

함수 호출

함수를 정의하면 함수에 이름만 부여되고 함수에 포함된 매개변수와 코드 블록 구조가 지정됩니다.

이 함수의 기본 구조가 완성되면 다른 함수 호출을 통해 또는 Python 프롬프트에서 직접 실행할 수 있습니다.

다음 예에서는 printme() 함수가 호출됩니다.

#!/usr/bin/python

# 함수 정의는 여기에 있습니다

def printme(string):

"들어오는 문자열 인쇄"

문자열 인쇄

# 이제 printme 함수를 호출할 수 있습니다

printme("사용자 정의 함수를 호출하고 싶습니다!");

printme("같은 함수를 다시 호출합니다") ;

위 출력 결과 예:

사용자에게 전화를 걸고 싶습니다. 정의된 함수!

같은 함수 다시 호출

매개변수를 값으로 전달하고 매개변수를 참조로 전달

모든 매개변수( 독립 변수)는 Python에서 참조로 전달됩니다. 함수에서 매개변수를 변경하면 이 함수를 호출하는 함수에서도 원래 매개변수가 변경됩니다. 예:

#!/usr/bin/python

# 쓰기 가능한 함수 설명

defchangeme( mylist ):

"수신 목록 수정"

mylist.append([1,2,3,4])

함수 내부에 "인쇄" 값: ", mylist

#changeme 함수 호출

mylist = [10,20,30];

changeme(mylist);

print "함수 외부 값: ", mylist

함수에 전달된 객체와 마지막에 새 내용을 추가하는 객체는 동일합니다. 인용하다. 따라서 출력 결과는 다음과 같습니다.

함수 내 값: [10, 20, 30, [1, 2, 3, 4]]

함수 밖의 값: [10, 20, 30, [1, 2, 3, 4]]

매개변수

다음은 함수 호출 시 사용할 수 있는 형식 매개변수 유형입니다.

필수 매개변수

명명된 매개변수

기본 매개변수

가변 길이 매개변수

필수 매개변수

필수 매개변수는 올바른 순서로 함수에 전달되어야 합니다. 호출 시 수량은 선언 시 수량과 동일해야 합니다.

printme() 함수를 호출할 때 매개변수를 전달해야 합니다. 그렇지 않으면 구문 오류가 발생합니다:

#!/usr /bin/ python

#Writable 함수 설명

def printme(string):

"들어오는 문자열 인쇄"

print string

#printme 함수 호출

printme()

위 예제 출력 결과:

추적(가장 최근 호출 마지막):

파일 "test.py", 11번째 줄,

printme()

TypeError: printme()는 정확히 1개의 인수를 사용합니다(0개 제공)

이름이 지정된 매개변수

이름이 지정된 매개변수는 함수 호출과 밀접한 관련이 있습니다. 호출자는 매개변수 이름을 사용하여 전달된 매개변수의 값을 결정합니다. Python 인터프리터가 매개변수 이름과 매개변수 값을 일치시킬 수 있으므로 전달되지 않은 매개변수를 건너뛰거나 매개변수를 순서 없이 전달할 수 있습니다. 명명된 매개 변수를 사용하여 printme() 함수를 호출합니다.

#!/usr/bin/python

#Writable 함수 설명

def printme(string):

"들어오는 문자열 인쇄"

문자열 인쇄

# printme 호출 function

printme(str = "My string")

위 예제 출력 결과:

내 문자열

다음 예는 명명된 매개변수의 순서가 중요하지 않음을 더 명확하게 보여줍니다.

#!/usr/bin/python

#쓰기 가능한 함수 설명

def printinfo(이름, 나이):

"들어오는 문자열 인쇄"

print "이름: ", name

print "Age ", age

# printinfo 함수 호출

printinfo( age=50, name="miki" )

위 예의 출력 결과:

이름: miki

50세

기본 매개변수

함수 호출 시 기본 매개변수의 값이 전달되지 않으면 기본값으로 간주됩니다. 다음 예에서는 나이가 전달되지 않은 경우 기본 나이를 인쇄합니다.

#!/usr/bin/python

#쓰기 가능한 함수 설명

def printinfo(name, age = 35):

"들어오는 문자열 인쇄"

print "이름: ", name

print "Age", age

#Call printinfo 함수

printinfo(age=50, name="miki")

printinfo( name="miki" )

위 예제의 출력 결과:

이름: miki

50세

이름: miki

35세

길이 불특정 매개변수

원래 선언된 것보다 더 많은 매개변수를 처리할 수 있는 함수가 필요할 수 있습니다. 이러한 매개변수를 가변 길이 매개변수라고 합니다. 위의 두 매개변수와 달리 선언 시 이름이 지정되지 않습니다. 기본 구문은 다음과 같습니다.

def functionname([formal_args,] *var_args_tuple ):

"Function_docstring"

function_suite

return [expression]

별표(*)가 있는 변수 이름은 이름이 지정되지 않은 모든 변수 매개 변수를 저장합니다. 더 많은 매개변수를 전달하지 않도록 선택할 수도 있습니다. 다음 예:

#!/usr/bin/python

# 쓰기 가능한 함수 설명

def printinfo(arg1, *vartuple):

"전달된 인수 인쇄"

print "출력: "

var에 대한 arg1

인쇄 in vartuple:

print var

# printinfo 함수 호출

printinfo( 10 )

printinfo( 70, 60 , 50 )

위 예의 출력 결과:

출력:

10

출력:

70

60

50

익명 함수

작은 익명 함수를 만들려면 람다 키워드를 사용하세요. 이 유형의 함수는 def를 사용하여 함수를 선언하는 표준 단계가 생략된다는 사실에서 이름을 얻었습니다.

Lambda 함수는 여러 매개변수를 받을 수 있지만 하나의 표현식 값만 반환할 수 있으며 명령이나 여러 표현식을 포함할 수 없습니다.

람다에는 표현식이 필요하므로 익명 함수는 print를 직접 호출할 수 없습니다.

람다 함수에는 자체 네임스페이스가 있으며 자체 매개변수 목록 외부 또는 전역 네임스페이스에 있는 매개변수에 액세스할 수 없습니다.

람다 함수는 한 줄만 쓸 수 있는 것처럼 보이지만 C나 C++의 인라인 함수와는 다릅니다. 후자의 목적은 스택 메모리를 차지하지 않고 작은 함수를 호출하여 증가시키는 것입니다. 운영 효율성.

문법

람다 함수의 구문에는 다음과 같이 하나의 문만 포함됩니다.

lambda [arg1 [,arg2 ,....argn]]:expression

다음 예:

#! /usr/bin/python

#쓰기 가능한 함수 설명

sum = 람다 arg1, arg2: arg1 + arg2

#합계 함수 호출

print "합계 값 : ", sum( 10, 20 )

print "합계 값 : ", sum( 20, 20 )

위 예시의 출력 결과:

전체 값: 30

총 가치 : 40

return 문

return 문 [expression]은 함수를 종료하고 선택적으로 호출자에게 표현식을 반환합니다. 매개변수 값이 없는 return 문은 None을 반환합니다. 이전 예제에서는 값을 반환하는 방법을 보여주지 않았습니다. 다음 예제에서는 수행 방법을 알려줍니다.

#!/usr/bin/python

# 쓰기 가능한 함수 설명

def sum(arg1, arg2):

# 매개변수 2개의 ​​합을 반환합니다."

total = arg1 + arg2

print "함수 내부 : ", total

return total

# 합계 함수 호출

total = sum( 10, 20 );

print "함수 외부: ", total

위 예제의 출력 결과:

함수 내부 : 30

함수 외부 : 30

변수 범위

프로그램의 모든 변수에 액세스할 수 있는 것은 아닙니다. 액세스 권한은 변수가 할당된 위치에 따라 다릅니다.

변수의 범위에 따라 프로그램의 어느 부분에 액세스할 수 있는지가 결정됩니다. 어떤 특정 변수 이름에 액세스하는지에 대한 가장 기본적인 두 가지 변수 범위는 다음과 같습니다.

글로벌 변수

변수와 로컬 변수

함수 내부에 정의된 변수는 로컬 범위를 가지며, 함수 외부에서 정의된 변수는 전역 범위를 갖습니다.

로컬 변수는 선언된 함수 내에서만 액세스할 수 있습니다. 전역 변수는 전체 프로그램 범위에서 액세스할 수 있습니다. 함수를 호출하면 함수 내에서 선언된 모든 변수 이름이 범위에 추가됩니다:

# ! /usr/bin/python

total = 0; # 전역 변수입니다.

# 쓰기 가능한 함수 설명

def sum( arg1 , arg2 ):

# 2개의 매개변수의 합을 반환합니다."

total = arg1 + arg2; # 여기서 total은 지역 변수입니다.

print "local 함수 내부 total : ", total

return total;

#Sum 함수 호출

sum( 10, 20 );

인쇄 "함수 global total 외부 : ", total

위 출력 예의 결과 :

local 함수 내부 합계 : 30

함수 외부 전역 합계 : 0

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Python 모듈다음 기사:Python 모듈