일레븐, 파이썬 기준 : 다양한 매개 변수의 사용 기능

일레븐, 파이썬 기준 : 다양한 매개 변수의 사용 기능

1. 왜 함수 매개 변수가?

우리는 당신이 당신의 기능이 더 경우에 적응하려는 경우 다른 조건에서 요구 사항을 처리하는, 우리가 옆으로 사용자 자신의 입력 매개 변수를 허용하는 함수에 매개 변수를 설정합니다, 그것은 재사용 할 수 있도록하는 것입니다 목적의 함수로 패키지 .

2. 어떤 함수 매개 변수의 유형?

파이썬, 파라미터의 함수는 다음과 같은 범주로 분류 될 수있다 :
위치 매개 변수, 키워드 변수 디폴트 파라미터 다치 파라미터

2.1, 위치 파라미터

def get_info(name, age, height):
    print(name)
    print(age, height)

이름, 나이, 높이 : get_info 위의이 기능은 세 개의 매개 변수가 있습니다.

그들은 당신이 전화를 시간에 따라,이 상원을 통과하는 방법입니다, 위치 매개 변수 아니다.

예를 들어
우리가 인수를 전달하는 위치 매개 변수에 따라 통화를 볼 때 어떤 방법입니다

def get_info(name, age, height):
    print(name)
    print(age, height)
    
get_info('小明', 12, 180)    # 正确调用方式
get_info(12, '小明', 180)    # 错误调用方式,位置错了
get_info('小明', 12)     # 错误调用方式,参数缺少了

위치 매개 변수 참고 :
1, 위치 매개 변수에 따라 다른 기능은 데이터를 잘 작성하지 얻을 수없는 잘못된 위치에 상원, 반드시주의를 기울를 통과 할 때.
2, 위치 매개 변수의 개수가 더 이상 작지, 함수를 정의 3 개 위치 파라미터, 시간의 함수 호출이 존재없고, 그 세 개의 매개 변수를 전달한다.
3, 함수, 매개 변수의 많은 종류, 위치 매개 변수가 항상 매개 변수의 다른 유형의 전면에 배치하는 방법에 상관없이의 정의.

2.2, 키워드 인자

당신이 함수 매개 변수 전달을 배치하기 위해 원하지 않는 경우, 당신은 매개 변수를 전달 키워드 인수를 사용할 수 있습니다.

def get_info(name, age, height):
    print(name)
    print(age, height)
    
get_info(age=12, name='小明', height=180)

잘못된 위치를 주문해도 키 - 값 쌍의 대량 참여의 방법에 따르면, 중요하지 않습니다, 한 키워드가 라인에 기록 된대로, 결과의 구현을 보면 :
그림 삽입 설명 여기

2.3, 기본 매개 변수 (기본 매개 변수)

기본 매개 변수는이 매개 변수를 전달할 때, 당신은 기본 값으로 매개 변수를 전달하지 자체가에 대한 기본 값을 설정합니다 기능을이 매개 변수를 전달할 수 없습니다, 즉, 기본 매개 변수라고합니다.

매개 변수는 호출 할 때 매개 변수를 전달하지 않는 방법에 기본 매개 변수가 아니라 정의에 따라, 기본 값으로 매개 변수가 없습니다.

우리는 당신이 전달할 수 없습니다, 당신이 그것을 호출 할 때, 우리는 매개 변수를 전달할 수 있습니다, 높이로,이 아래로, 기능 이상 그것을 결과에 모습을 180의 디폴트 값을 조금 변경

def get_info(name, age, height=180):
    print(name)
    print(age, height)
    
get_info(age=12, name='小明')
get_info(age=12, name='xiaoming', height=170)

그림 삽입 설명 여기
당신이 매개 변수를 전달하는 기본 매개 변수가있는 경우 호출 할 때, 기본 값이 때 원래 정의를 설정하지 않은 경우 또는 정상 출력은, 그것은 당신이 전달하는 매개 변수를 사용합니다.

참고 : 기본 매개 변수는 위치 매개 변수 이후 여야합니다, 우리는 중간에 기본값을 연령에 작동 상황을 확인하기 위해 방법을 보여줍니다.

def get_info(name, age=12, height):
    print(name)
    print(age, height)
    
get_info(12, 170)

결과는 주어질 것이다 :
그림 삽입 설명 여기
그림 삽입 설명 여기

2.4 다중 파라미터

우리는 사용자가 많은 매개 변수를 전송할 수 있도록 기능을 정의하지만, 매개 변수의 수는 불확실 할 때 때때로,이 시간 당신은 다중 값 매개 변수를 사용할 수 있습니다.

데이터 전송의 종류에 대응하는 다중 파라미터 표현의 두 종류가있다 :

* 인수가 튜플을 받아 길이 튜플 한정되지 나타내고
** kwargs로는 사전을 수신 나타내고, 사전은 길이에 제한되지 않는다;

def get_info(name, age, *args, **kwargs):
    print(name, age)
    print(*args)
    print(**kwargs)
    
t = (123, 345)
d = {'phone': '156XXX'}
get_info('小明', 12, t, d)

결과에서 봐 :
그림 삽입 설명 여기
결과는 겉으로 잘, 잘못했는지 봐.
그러나, 사실, 그것은 문제입니다! ! !
출력에서 봐, 우리는 분명히 함수의 세 줄 수 있어야 세 가지 인쇄 () 결과를 인쇄 설정, 그런데 왜 출력 만 두 줄의 결과? 그러나없는 내용, 모든 출력을 인쇄하지 않았다.

때문에 위의에 의해 발생하는 문제의 약간의 필요에 특별한 관심은 인터프리터는 절판, 따라서 당신이 t d는 * 인수 내부에 수집 된 두 개의 매개 변수, ** kwargs로 통과하지만, 수집 매개 변수를하지 않았다,이된다 단지 2 라인.

해결 방법 :
매개 변수에 두 개의 매개 변수를 더한 문자에 각각 전달할 때 * 및 ** 여기에 또 하나 주목할 점은 그 인쇄 (** kwargs로는)이며,이 인쇄 (kwargs로) 또는 인쇄 변경을 원했습니다 (* kwargs로를) , 그렇지 않으면 오류가됩니다.

def get_info(name, age, *args, **kwargs):
    print(name, age)
    print(*args)
    print(*kwargs)
    
t = (123, 345)
d = {'phone': '1560000'}
get_info('小明', 12, *t, **d)

: 출력에서 봐
그림 삽입 설명 여기
그림 삽입 설명 여기
조언의 매개 변수의 기능 :
에주의를 기울이 사전의 목록은 기본 매개 변수로 불평하지 않을 것이다, 그러나 때때로 이상한이 발생할 수 있지만, 인 기본 매개 변수로, 데이터 컨테이너의 변수 유형을 사용하지 않는 것이 좋습니다 질문입니다.

나는 다른 기사이 문제는 특별히 말했다 :

파이썬 구덩이 : 사용 기본 매개 변수로 빈리스트, 나는 초자연적 인 코드가 발생 의심 있도록

게시 51 개 원래 기사 · 원의 찬양 (76) · 전망 9098

추천

출처blog.csdn.net/Jacky_kplin/article/details/104810354