백엔드 개발 파이썬 튜토리얼 Python 함수의 기본 매개변수를 설정하는 방법

Python 함수의 기본 매개변수를 설정하는 방법

May 04, 2023 pm 07:01 PM
python

함수를 호출할 때 매개변수가 지정되지 않으면 Python 인터프리터에서 예외가 발생한다는 것을 알고 있습니다. 이 문제를 해결하기 위해 Python에서는 매개변수에 대한 기본값 설정, 즉 함수 정의 시 형식 매개변수에 대한 기본값을 직접 지정하는 것을 허용합니다. 이 경우 함수 호출 시 기본값을 갖는 형식적 매개변수에 어떠한 매개변수도 전달하지 않더라도 해당 매개변수는 함수 정의 시 설정된 기본값을 그대로 사용할 수 있다.

Python은 기본값 매개변수를 사용하여 함수를 정의합니다. 구문 형식은 다음과 같습니다.

def 函数名(...,形参名,形参名=默认值):
    代码块
로그인 후 복사

이 형식을 사용하여 함수를 정의하는 경우 기본값이 있는 형식 매개변수는 모든 매개변수 끝에 지정되어야 합니다. 그렇지 않으면 문법 오류가 발생합니다.

다음 프로그램은 기본 매개변수를 사용하여 함수를 정의하고 호출하는 방법을 보여줍니다.

#str1没有默认参数,str2有默认参数
def dis_str(str1,str2 = "http://c.biancheng.net/python/"):
print("str1:",str1)
print("str2:",str2)
 
dis_str("http://c.biancheng.net/shell/")
dis_str("http://c.biancheng.net/java/","http://c.biancheng.net/golang/")
로그인 후 복사

실행 결과는 다음과 같습니다.

str1: http://c.biancheng.net/shell/
str2: http://c .biancheng .net/python/
str1: http://c.biancheng.net/java/
str2: http://c.biancheng.net/golang/

위 프로그램에서 dis_str() 함수는 2개의 매개변수가 있고 두 번째 매개변수에는 기본 매개변수가 있습니다. 이는 dis_str() 함수를 호출할 때 프로그램의 6행에 표시된 대로 str1 매개변수에 전달될 1개의 매개변수만 전달할 수 있으며 str2는 기본 매개변수를 사용한다는 것을 의미합니다.

물론 dis_str() 함수를 호출할 때 모든 매개변수에 값을 전달할 수도 있습니다(코드의 7번째 줄에 표시됨). 이때 str2에 기본값이 있더라도 우선순위를 갖습니다. 전달된 새 값에 적용됩니다.
동시에 키워드 매개변수와 결합하여 dis_str() 함수를 호출하는 다음 3가지 방법도 가능합니다.

dis_str(str1 = "http://c.biancheng.net/shell/")
dis_str("http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")
dis_str(str1 = "http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")
로그인 후 복사

다시 한번, 기본값 매개변수로 함수를 정의할 때 기본값이 있는 매개변수는 다음과 같아야 합니다. 매개변수 뒤에 기본값이 없는 모든 매개변수에 위치합니다. 따라서 다음 예에 정의된 함수는 올바르지 않습니다.

#语法错误
def dis_str(str1="http://c.biancheng.net/python/",str2,str3):
pass
로그인 후 복사

분명히 str1에는 기본값이 있지만 str2 및 str3에는 기본값이 없으므로 str1은 str2 및 str3 뒤에 와야 합니다.

일부 독자는 자신만의 사용자 정의 함수에 대해 어떤 매개변수에 기본값이 있는지 쉽게 알 수 있다고 물을 수 있지만, Python에서 제공하는 내장 함수나 다른 제3자가 제공하는 함수를 사용하면 어떤 매개변수에 기본값이 있는지 어떻게 알 수 있나요? 기본값?

Pyhton에서는 "function name.__defaults__"를 사용하여 함수의 기본값 매개변수의 현재 값을 볼 수 있으며, 해당 반환 값은 튜플입니다. 이 섹션의 dis_str() 함수를 예로 들어 보겠습니다. 이를 기반으로 다음 코드를 실행합니다.

print(dis_str.__defaults__)
로그인 후 복사

프로그램 실행 결과는 다음과 같습니다.

('http://c.biancheng.net/python/', )

위 내용은 Python 함수의 기본 매개변수를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

템플릿의 장점과 단점은 무엇입니까? 템플릿의 장점과 단점은 무엇입니까? May 08, 2024 pm 03:51 PM

템플릿의 장점과 단점은 무엇입니까?

DeepSeek Xiaomi를 다운로드하는 방법 DeepSeek Xiaomi를 다운로드하는 방법 Feb 19, 2025 pm 05:27 PM

DeepSeek Xiaomi를 다운로드하는 방법

Google AI, 개발자를 위한 Gemini 1.5 Pro 및 Gemma 2 발표 Google AI, 개발자를 위한 Gemini 1.5 Pro 및 Gemma 2 발표 Jul 01, 2024 am 07:22 AM

Google AI, 개발자를 위한 Gemini 1.5 Pro 및 Gemma 2 발표

단 250달러에 Hugging Face의 기술 디렉터가 Llama 3를 단계별로 미세 조정하는 방법을 알려드립니다. 단 250달러에 Hugging Face의 기술 디렉터가 Llama 3를 단계별로 미세 조정하는 방법을 알려드립니다. May 06, 2024 pm 03:52 PM

단 250달러에 Hugging Face의 기술 디렉터가 Llama 3를 단계별로 미세 조정하는 방법을 알려드립니다.

여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유 여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유 May 06, 2024 pm 04:43 PM

여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유

golang 함수 디버깅 및 분석에 대한 완벽한 가이드 golang 함수 디버깅 및 분석에 대한 완벽한 가이드 May 06, 2024 pm 02:00 PM

golang 함수 디버깅 및 분석에 대한 완벽한 가이드

당신은 그에게 Deepseek에게 어떻게 물어 봐요 당신은 그에게 Deepseek에게 어떻게 물어 봐요 Feb 19, 2025 pm 04:42 PM

당신은 그에게 Deepseek에게 어떻게 물어 봐요

평가 기능을 저장하는 방법 평가 기능을 저장하는 방법 May 07, 2024 am 01:09 AM

평가 기능을 저장하는 방법

See all articles