넷째 날 : 함수


## A, 기능을하는 방법을 정의하는

``파이썬
''
간략화 한, 기능
(2) 외부에 요구되는 내부 함수 자원 : 함수 파라미터에 의해 실현
3 기능 실행 결과는 외부 말할 필요 반환 값을 통해 외부 세계에 알려
'' '
' `

 

## 번째 함수의 파라미터

실제 매개 변수의 종류 ####

파이썬```
'' '
매개 변수 : 매개 변수 ()는 함수 정의에 나타났다
- 함수가 호출되는 실제 매개 변수 값 (의미), 참고로, 어떤 인수를 전달이없는 어떤 값
인수 : 매개 변수 () 함수 호출에 나타납니다
- 인수가 실제 값 (의미)가

키 : 함수 호출 매개 변수 전달 : 매개 변수의 인수에 할당 된 값이 | 매개 변수는을 통해 외부 세계의 가치를 얻을 수 있습니다 얻기위한 인수
'' '

DEF FN (a, b) : #의 A, B :形参
패스

a = 10
fn (a, 20) # a 20 :实参

```

인수 #### 이가지

파이썬```
'' '
: 인수의 위치를
특정 인수 값 | 이름 인수 : 두 가지 방법으로 전달 1. 매개 변수를
2 위치 매개 변수 값을 전달해야합니다


키워드 인수 :
1. 두 가지 방법으로 전달하는 매개 변수 : 매개 변수 이름 인수 이름 = | 매개 변수 이름 인수 값 =
2 매개 변수가 이름을 이름 값에 전달 될 수 있으며,이 기준 위치에 의해 전송 될 수 없다
' ''

데프 FUNC (A, B, C)
잉크 (A, B, C)

# Func을 (10, B = 20 , 200)의 위치 지정 인수 키워드 인수 따름 : 구문 에러를 : 주어지는
전송시 함께 참조 인수 두 종류 : # 키를 반드시 제 위치 키워드 뒤
`

 

#### 개의 매개 변수 분류

파이썬```
'' '
매개 변수 유형을 :
1) 위치 매개 변수
- 정상 위치 매개 변수
- 기본 매개 변수
- 가변 길이 매개 변수의 위치

2) 중요한 매개 변수
- 파라미터는 키의 기본값 갖는다
없이 기본 파라미터 키워드 -
- 키워드 가변 길이 파라미터
''
DEF FN (A, B, * X, Y) : # 매개 변수 위치 : A, B 키워드 매개 변수 : X, Y
패스

'' '
키 :
1. * 분수령
2. 위치 매개 변수는 손가락의 위치에 인수 값을 전달할 수 있습니다
계대 손가락 키 매개 변수 값의 위치에 참여할 수 있습니다 3. 키워드 인수
' ''
'

 

기본 값으로 두 형태 파라미터 ####

파이썬``
DEF Fn2를 (A = 10 * X = 20이다)
인쇄 (A, X)
Fn2를 (100, X = 200이다)
# 요약 :
1이 통과 할 수없는 파라미터 값의 기본값 갖는다
# 2. 호출이 매개 변수의 디폴트 값의 기본값 전에 *, 위치 매개 변수가 속한, 위치 값은 계대 및 키워드 인수 할 수
# 3 키 매개 변수 후 기본값이 * 촉구했다 디폴트 값은 키 모양입니다 인삼, 값만을 통과 키워드 인수 받는다
생략 된 경우 # * 4. 형상과 파라미터의 디폴트 값은 상기 파라미터의 기본값

```

 

기본값은 없습니다 값과 조합의 기본 값 매개 변수와 함께 ####

``파이썬
DEF Fn3 (A, B는 = 10 * X, Y = 20이고, Z)
출력 (A, B, X, Y, Z)
Fn3 (100, X = 200이고, Z는 = 300)
# 개요 :
# 1. 디폴트 값 또는 패스 통과하지 않을 수 있습니다 기본 값으로, 매개 변수를 전달 없어야가
이 위치하지 필요한 키워드 주문 후 나타나야없는 값의 값이 #을
```

 

형태 가변 길이 파라미터 키워드 사이 #### 가변 길이 위치

파이썬``
DEF Fn4 (A, B = 10 * 인수, X, kwargs로 **)
출력 (A, B, X)
인쇄 (인수)
이 전단 (kwargs로)
Fn4 (10, 20이며, 30, X = 100 , Y = 200이고, Z = 300)
# 요약 :
1)이 완전히 N 0을 수신 (수신되지 않는 가변 길이 값을 수신하기 위해 사용된다 :
# - * 인수가 수신 완료되지 모든 위치를 수신 ( 전용) 위치 인수를받을 수 있습니다
# - (수신 만 키워드 인수) 수신이 완료되지 키워드를 모두받을 ** kwargs로를
# 2. * 인수가 위치 매개 변수 후 이렇게 표시해야합니다, ** kwargs로 나타나야합니다 그래서 매개 변수 후


일반적인 응용 프로그램 시나리오 #의
#은 항상 첫 번째 위치 매개 변수 이름이라고 가정
DEF Func4 (* 인수, ** kwargs로는) :
이름 = 인수 [0] # 이름을에

func44 DEF (이름, * 인수, ** kwargs로) :
# 이름을 직접받을 수 있으며,에 지방의 아웃 절차
패스
```

 

#### 요약

파이썬```
'' '
오직 위치 매개 변수 값을 전달할 수 1 인자 위치를
매개 변수 값을 전달할 수있는 위치와 키워드 2. 키워드 인수를
3 전달할 수 없습니다 매개 변수의 디폴트 값이
4. 변수 길이 위치 매개 변수 인수는 튜플에 저장, 어떤 매개 변수 인수 위치를 수신하지 후, 수신 위치를 위치를 수신 할 수
5. 키워드를 수용 할 수있는 가변 길이 키 매개 변수 인수 키워드 수용 매개 변수 키워드 인수가 완전히 사전에 저장, 수신되지
6. * 인수는 모든 위치 매개 변수 다음에 발생해야, ** kwargs로 매개 변수를해야 결국
'' '
'

 

#### 가변 길이 전체 패스 파라미터 : value 통과 체류

파이썬``
DEF FN (인수 *, ** kwargs로)
인쇄 (인수, kwargs로)

FN ([1, 2, 3 ,..] { 'A':. 1 ', B': 2}) = #> 수신 제 ([1,2 ,. 3.] { 'a'는 :. 1 ', B': 2})} {
FN (* [1,2 ,. 3.] {** 'A':. 1 ', B': 2}) = #> 수신 (1, 2, 3) { '은'1 ', B': 2}

# 참고 : 문자열 변속기의 세트로 분리 될 수있다 망가
FN (* 'ABC') # => ( 'A', 'B', 'C') {}
``

 

## 번째 함수 개체

`파이썬 '
# 함수 이름, 즉 목적하는 변수의 메모리 주소를 저장하는, 함수의 메모리 주소를 저장하고, 함수 이름은 함수 목적은

# 기능 개체 응용 시나리오
1 직접 참조 할 수있는
# 2 전달 함수의 변수로서 사용될 수
있다 함수의 리턴 값 # 3
요소 # 4 종류의 용기로서 사용될 수있다

# 기능 본체
추가 DEF (N1, N2) :
N1 +의 N2를 반환

데프 낮은 (N1, N2) :
반환 N1 - N2

데프 (N1, N2) 점프 :
리턴 N1을 * N2

# 완료
계산 DEF (N1, N2는 FN) | 저 | #은 FN이 추가가 = 점프
RES는 =에서 Fn (N1, N2) # 호출 특정 기능은
고해상도를 반환

# 기능의 대응 관계
method_map는 = {명령 및 기능 # 물체 사이의 대응 관계
. '1'추가,
'2': 낮음,
3 '.'점프
}

# 취득 기능
DEF의 get_method (cmd를)
method_map에 cmd 경우 :
추가로 반환 method_map [cmd를] # 리턴 | 낮은 | 점프
추가 명령 오류가 추가 할 때 반환 #을 기본 기능

참 동안 :
cmd를 INPUT = ( '명령 :')
RES = get_method CMD () # 명령이 함수를 페치 (10, 20이다), 그 결과 얻어진 호출
인쇄 (RES)를
``

 

## 넷째, 중첩 된 함수 호출

```파이썬
중첩 기능 #를 호출 내부 함수가 다른 함수 호출에
#이 두 수의 최대 찾을
: DEF의 max_two (N1, N2)를
N1> N2는 경우 :
반환 N1이
N2를 반환

#의 최대 수를 찾기 세
DEF max_three (N1, N2, N3) :
최대 = max_two (N1, N2)
반환 max_two (최대, N3)

# 네 최대 개수 찾기
DEF의 max_four (N1, N2, N3, N4)
최대 = max_three (N1, N2, N3)
복귀 max_two (최대, N4)
인쇄 (max_four를 (20, 50 30 50))
` ``

 

 

## V. 네임 스페이스

``파이썬`
# 네임 스페이스 : 메모리 공간은 컨테이너 사이의 대응 관계의 이름과 주소 저장하기
# 효과를 다음 제한으로 인해 이름이 중복 된 이름이 충돌 전송 문제가 발생 해결 - 내장 글로벌 로컬 저장소 동시에 주소에 다른 이름을 사용할 수 있습니다

# 3 종 네임 스페이스
#이 내장 : 내장 네임 스페이스, 시스템 - 온 - 하나, 인터프리터와 인터프리터가 파괴 중지 동안 실행하고 생산하는
글로벌을 #을 : 글로벌 네임 스페이스를, 파일 레벨을, 더, 당신의 파일은 생산과로드 파일은 실행 및 파괴 완료
기능을 생성하는 함수의 구현이 완료과 파괴, 기능 수준, 더, 로컬 이름 공간 : 지역 #을

#로드 순서 : 내장> 무료 가입은> 로컬
# - 실시 (푸시)를 사용하여 스택 데이터에 저장, 결과는 마지막 액세스 내장
`

 

## 여섯 중첩 정의 함수

``파이썬
중첩 정의 번호 기능 : 내부 함수 정의 함수
이유 # 탄생 : 함수 내에 정의 할 수있는 다른 내부 변수 함수를 사용하고자
: DEF FUNC ()
10 A =
DEF FN () :
인쇄 (A)
FN을 반환

new_fn FUNC = ()
new_fn ()
``

 

두 가지 기능 관련 키워드와 함께 #### : 글로벌 로컬이 아닌

파이썬``
# 글로벌 : 균일 로컬 및 글로벌 변수 이름
NUM = 10
DEF 겉감 () :
# 글로벌 NUM의
#의 NUM = 100
DEF 내부 () :
글로벌 NUM
NUM = 1000

#의 nonlcal : 유니티 중첩 로컬 변수 부분 이름
DEF 겉감 () :
NUM = 100
DEF 내부 () :
비 로컬 NUM
NUM = 1000
``

 

## 세븐, 범위

``파이썬`
# 범위 : 함수의 범위 이름
# 효과 : 문제가 공존 할 수있는 동일한 이름을 해결하기 위해 - 다른 범위에서 같은 이름의 값이 그 범위의 범위에서 사용할 수있는
'' '
범위 네 가지 종류 : LEGB는
내장을 -in : 내장 범위 - 모든 장소에서 모든 파일에 액세스 할 수있는
글로벌 : 글로벌 범위 - 모든 현재 파일의 위치에
둘러싸 : 중첩 된 범위 - 자체 내 및 내부 기능
지역 : 지역 범위를 - 자신의 내부에만
'' '
#로드 순서를 : 내장> 무료> 둘러싸> 로컬 가입
# 액세스 (검색) 순서 : 주어진 <내장 <무료 <묶는 <로컬 가입
# 범위 : 내장> 무료 회원 가입> 둘러싸> 로컬
```

 

## 여덟, 폐쇄

파이썬```
# 폐쇄가 : 내부 기능의 함수를 정의, 내부 폐쇄의 함수이다

어플리케이션 장면 번호 :
# 1 내부 변수를 다른 기능으로 사용될 수 있으며, 또한 (반환 값으로 작동하는 기능 개체 폐쇄로) 동일한 위치 보증을 호출 할 수
DEF 겉감 ()
COUNT = 3000
DEF FN () :
인쇄 (COUNT)가 # 아우터 내부 변수 COUNT를 사용하여
복귀의 FN
# 또는 외부에서 호출
(외측 #) () (외부 =>) (FN) () =>를 호출 FN


지연된 실행 # 2 (파라미터를 전달할 수있는 메모리로서 기능 외층 기능)
가져 오기 요청
DEF 겉감 (URL) :
DEF의 show_html을 () :
응답 = requests.get (URL)
인쇄 (response.text)
복귀 show_html

# 메이커 등반 함수 객체와 바이시나
show_baidu = 겉감 ( 'https://www.baidu.com')
show_sina = 아우터 ( 'https://www.sina.com.cn')

수요에 #의 지연, 함수 객체를, 당신이시나를 증가 할 필요가 사용하는 바이, 바이 오를 필요는시나는 함수 오브젝트 사용
show_baidu ()
show_sina ()
show_baidu을 ()
```

 

## 년 9 월 장식

파이썬``
# 장식 : 장식 된 클로저 시나리오 인
- 폐쇄 외부 기능과 메모리 기능의 집적 구조로 형성 #

# 키 : 개방 - 폐쇄 원칙의
#의 개방 : - 기능 점수가 열려 확장 이전 기능에 새로운 기능을 추가 할 수 있습니다
: (1) 소스 코드 (2)의 원래의 기능을 변경할 수 없습니다 기능에 의해 원래의 함수를 호출하는 기능 객체가 #을 마감했다.

Huaping DEF () :
인쇄 ( "꽃 기능 ')

= Huaping 임시
DEF의 my_huaping () :
TEMP ()
전단 ( '시청 기능')
Huaping = my_huaping

huaping ()

# ----------------------------------------

Huaping DEF () :
인쇄 ( "꽃 기능 ')

DEF 외측 (온도) : # 온도 = huaping의
데프 my_huaping () :
온도 ()
인쇄 ( '观赏功能')
복귀 my_huaping의
huaping = 외측 (huaping) #에 huaping = my_huaping

huaping ()


---------------------------------------------- #
DEF 외부 ( TEMP) : #의 TEMP = Huaping
DEF의 my_huaping () :
TEMP ()
인쇄 () '기능을보고'
반환 my_huaping

# = 외부 Huaping의 @outer (Huaping)
DEF Huaping () :
인쇄 ( '꽃 기능')

Huaping ()


------------------------------------------ #
# 기능이 장식되어 있습니다 장식 템플릿은 모든 매개 변수를 충족하고, 원래의 함수 반환 값 장식 할 수 있습니다 참조가 돌아왔다
DEF 외부 (FUNC) : # 임시 = Huaping
DEF 내부 (* 인수, ** kwargs로) :
패스
* 인수를 RES = FUNC를 (* kwargs로 *)
통과
RES를 돌려주는
내부를 반환

@outer의
데프 any_method () :
패스

```

#### 장식 케이스

```파이썬
계정 로그인 기능 테스트 기능 번호를 추가 : 3 이상의 영어 글자 수 있어야합니다
: DEF의 check_user (FUNC)
DEF 내부 (사용자, PWD) :
IF하지 (user.isalpha ()와 렌 (사용자)> . 3 =) :
'잘못된 계정'을 반환
RES = FUNC (사용자, PWD)는
RES를 돌려주는
내부를 반환

# 비밀번호 로그인 기능 검사 기능을 추가 : 세 개 이상의 문자 또는 숫자이어야합니다
DEF의 check_pwd (FUNC) :
DEF 내부 (* 인수, ** kwargs로) :
PWD = 인수 [1]
IF하지 (pwd.isalnum ( )와 렌 (PWD)> = 3).
'잘못된 암호'반환
) ** kwargs로를 RES = FUNC (* 인수를,
RES를 돌려주는
내부를 반환

수정 장식의 # 로그인 결과 : 거짓 진정한 => 성공적인 로그인 => 로그인 실패
: DEF의 change_res (FUNC)
DEF 내부 (* 인수, ** kwargs로) :
RES = FUNC (* 인수, ** kwargs로)를
IF RES = 진정한 =
수익 '로그인 성공'
반환 '로그인 실패'
내부를 반환


프로세스 # 장식이 위에서 아래로 수행
@check_user 번호 = check_user 로그인 (FUNC = 로그인) = 내부가
@check_pwd
@change_res
DEF 로그인 (사용자, PWD) : # 기능 객체가 장식되는
사용자 == '오웬'의 경우 == PWD와 '123':
True를 반환
반환 거짓

= 사용자 입력 ( '사용자')
PWD = 입력 ( 'PWD')
입술 = 로그인 (사용자 PWD)

인쇄 (고해상도)
```

추천

출처www.cnblogs.com/michaeldon/p/11327723.html