파이썬 변수 매개 변수를 [십시오] 매개 변수 *, ** 매개 변수 및 전달 된 매개 변수는 * 풀고

https://blog.csdn.net/cadi2011/article/details/84871401 

도 1은, 2 개 개의 인수를 취하는 함수를 정의

print_str의 DEF는 (첫 번째, 두 번째) :
첫 번째 인쇄
, 인쇄 SECOND을

: __name__ == "__main__"경우
print_str (이하 "안녕하세요", "세계")
이라는 매개 변수, print_str를 ( "안녕하세요") 전달하는 경우는 예외가 발생합니다

명시 적으로 결정하기 위해 이제 하나 개의 매개 변수 만 정확히 두 개의 매개 변수를 말할 필요가

형식 오류 다음 print_str ()가 정확히 2 인자에게 (1 GIVEN) 간다
, 우리가, 내가이 매개 변수를 전달하고자하는 것도 확인을 요구하다 한 2, 위의 문제를, 두 개 이상의 매개 변수를 전달 (방법의 종류는 기본 매개 변수를 사용하는 것입니다있다) 함수의 인수가 할 것인가? 자바와 마찬가지로이 있어야, 우리가 변수 매개 변수에 대한 최종 매개 변수 (즉 변수 매개 변수입니다, 당신은 전달할 수 없습니다) 무엇을 변환 할 수

print_str의 DEF가 (첫 번째, 두 번째, *) :
첫 번째 인쇄
인쇄 SECOND을,
이 시간 전화 : print_str ( "안녕하세요")

출력 :

헬로
()
나는 매개 변수를 전달하기 때문에, 출력 할 문자열 "안녕하세요"를 볼 수 있지만, 제로 요소의 튜플을, 상원 *의 두 번째를 통과 튜플 튜플을 인쇄하지 않았다

 

우리보다 더 많은 일을 할하다면 몇 가지 매개 변수를 전달

print_str ( "안녕하세요", "하나", "둘", "세")
输出结果:

헬로
( '하나', 'TWO', '세')는
실제로 즉, 파라미터 뒤에 "하나"튜플의 첫번째 요소로서, 시작 번째 파라미터는 원이 될 것이다 변수 패러미터에서 시작 그룹 요소

 

3 * 파라미터 정리해

호출시, 소 13 튜플 자동 형성 파라미터 * 파라미터 통과 개시하고,

 

도 4에서, 함수 호출, * 파라미터를 전달하는 단계의 함수로서 자동 파라미터 각 요소 파라미터 튜플 함수를 풀기 전달 될

print_str (* numbers_strings) 수신 * 튜플 방법 패킹 참조 투플의 첫번째 요소는 여전히 첫 번째 매개 변수의 위치를 ​​나타내는

等同 于 print_str ( "1", "2", "3", "4", "5")

numbers_strings = ( "1", "2", "3", "4", "5")

DEF print_str (제 1, * 제) :
첫 번째 인쇄
잉크를 제

경우 __name__ == "__main__"
print_str (* numbers_strings)


输出结果:
1
( '2', '3', '4', '5')
 

이 함수의 매개 변수가 아닌 경우 (5), 함수는 파라미터 더 수행 통과 한 시간을 풀 수? 예 일견 물론 가능

numbers_strings = ( "1", "2")

DEF print_str (첫 번째)
첫 번째 인쇄
잉크를 제

__name__ == "__main__"경우 :
print_str (* numbers_strings)
输出结果:

1

2
 

6, 부끄러워 아, 놓친 ** 매개 변수는 첫 번째 매개 변수의 이름이이 **, 또한 사전 매개 변수로 알려진 키워드 인수를 대신하여 예를 살펴

printStr DEF (** 아무것도) :
인쇄 아무것도

printStr (. 먼저 = 5, SECOND = 100)
{ 'SECOND'100, '먼저':. 5}
키워드 매개 변수는 0 또는 매개 변수 이름 매개 변수의 수를 포함 전달할 수 있습니다 함수 내에서 이러한 키워드 인자가 자동으로 딕셔너리 조립하기
가 통과 키워드 인수로 변환 모든 키 - 값 쌍의 사전을 것입니다 압축을 풀 것 또한 작품의 사전 기능을 전달할 수, 함수가 호출, 6-1 가기


데프 printStr (첫째, ** DICT) :
인쇄 STR (첫번째) + "\ n을"
인쇄 딕셔너리


printDic = { "이름": "타이슨", "나이": "99"}


printStr (100, ** printDic)

printStr (100, 이름 = "타이슨", 연령 = "99") #等同于上面** printDic
 

7. 결론

기호 *은 상기 동시 함수 파라미터 ** 정의 파이썬에서 허용 목록을 나타내는 파라미터는 파라미터의 수, 각 변수는 매개 변수

* 두 번째는 알 수없는 매개 변수라고도 튜플 매개 변수, 최종 형태 튜플 (0을 포함) 수를 대표하는 (주 : 심지어 전송 요소의 경우, 결국 튜플이 될 것이다)

** 아무것도 또한 사전 매개 변수로 알려진 키워드 인자의 수, 사전의 궁극적 인 유형을 표시

참고 : 두 사람이 존재하는 경우, 우리는 (세 번 말을 중요한 일) 아무것도하기 전에 ** * 초를 둘 필요가

참고 : 두 사람이 존재하는 경우, * 초 ** 아무것도 요구하기 전에 배치해야

참고 : 두 사람이 존재하는 경우, * 초 ** 아무것도 요구하기 전에 배치해야

 

8,주의 사항, 다시 말

A, 긴 제 매개 변수 (파라미터 또는 키워드 미지 파라미터)와 같이, 파라미터 0이 전송 될 수 있으며, 전송 될 수 있고, 또한 복수의 송신 할

B는 다시 한 매개 변수 (또는 변수 파라미터 사전 튜플)로서, 일반 파라미터 (또한 위치 파라미터라고도 함)해야

C * ** 파라미터는 상기 파라미터의 전면에 있어야 (사전 매개 변수가 존재 튜플 특정 파라미터 튜플으로)

데프 printStr (매개 변수, 매개 변수 *, ** 매개 변수) :
패스
는 튜플 인 경우 d는, * 매개 변수, 튜플 매개 변수라고하지만, 당신은 객체가 카자흐스탄에 와서 완전한 튜플을 전달할 수 없습니다, 재 오픈 할 기억, 또는 당신이있을거야 희생양이 *의 turple 전달하는

전자, ** 매개 변수, 사전 매개 변수라고하지만, 당신이 사전의 경우, 마우스 오른쪽, 그것은이에 전달하는 것입니다, 압축을 풀고 기억하고, 객체가 카자흐스탄에 와서 완전한 사전을 전달할 수 없습니다 ** DICT

f는, 인수로 전달하는 경우 매개 변수라는 튜플 매개 변수, 그것은 또한 최종 구성 turple에 가서 *,이 점에주의해야한다, 나는 거의 무의미한 오늘의 소스 코드를 볼 수 밖에

jsonify DEF (인수 *, ** kwargs로)
들여 = 없음
분리기 = ( '', '')

IF current_app.config [ 'JSONIFY_PRETTYPRINT_REGULAR'] 또는 current_app.debug :
오목 = 2
세퍼레이터 = ( ',', ' ')

IF 인수 및 kwargs로 :
들기 형식 오류 ('jsonify () 때 정의되지 않은 동작 둘 다 인수의 kwargs로 ')를 통과
ELIF LEN (인수) 1 ==. 직접 인수 덤프에 전달 SINGLE # ()
데이터 = 인수 [0] # 참조 여기 참고
하십시오 다른
데이터 = 인수 또는 kwargs로는

current_app.response_class (반환
덤프 (데이터, 들여 쓰기 = 들여 쓰기 = 선별기 선별기) + '\ N-',
mimeType를 = current_app.config [ 'JSONIFY_MIMETYPE']
)
G, 매개 변수를 ** 나는 같은 매개 변수를 사전, 시간에 패스가 동일한 결국 DICT로 변환됩니다 생각

시간은, 그 튜플 매개 변수, 나는 특히 혼란, 전자 막대와 좋은 관계, 관심이 시점에서, DICT 인수를 전달하는 빅뱅, 그리고 위의 예제 F 또는 바있다

추천

출처www.cnblogs.com/exmyth/p/11234696.html