>  기사  >  백엔드 개발  >  Python의 함수에 대한 포괄적인 요약(예제 포함)

Python의 함수에 대한 포괄적인 요약(예제 포함)

不言
不言원래의
2018-09-15 17:51:261761검색

이 글은 Python의 함수에 대한 포괄적인 요약을 제공합니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

1. 형식 매개변수의 동적 매개변수: 매개변수가 불확실할 때 사용됩니다.
형식:

def fun (*args)
fun(args)

1 동적 매개변수는 위치 매개변수 뒤에 와야 합니다.
목록 예 1. 다음 예와 같이 매개변수가 불확실한 경우에는 사람마다 식욕이 다르고 음식 유형도 다릅니다. 이 경우 동적 매개변수 전송이 사용됩니다.

def fun(*food):  #*表示的是不定参数,可以传递任意个信息,参数名称还是food,且接收到的信息为元祖()
    print("我要吃",food)
fun("米饭")    #*表示位置参数的动态传参    结果为我要吃 ('米饭',)
fun("一锅米饭","一箱辣条","一桶方便面","可口可乐")#我要吃 ('一锅米饭', '一箱辣条', '一桶方便面', '可口可乐')
fun ("一碗米饭","辣条","雪碧")  #结果为我要吃 ('一碗米饭', '辣条', '雪碧')

예제 2.

def fun (*food,a,b):
    print("我要吃",food,a,b)
fun("苹果","梨子","香蕉")  #此时程序会报错,全被food接收了,a和b永远接收不到参数.
def fun (a,b,*food):
    print("我要吃",a,b,food)
fun("苹果","梨子","香蕉","橘子")  #我要吃 苹果 梨子 ('香蕉', '橘子')

2. 기본값 매개변수는 Time: Sequence: 위치 매개변수, 동적 매개변수*, 기본값 매개변수

def chi(a, b, *food, c="娃哈哈"):
    print(a, b, food, c)
chi("香蕉", "菠萝") #香蕉 菠萝 () 娃哈哈 默认值生效
chi("香蕉", "菠萝", "葫芦娃") #香蕉 菠萝 ('葫芦娃',) 娃哈哈 默认值生效
chi("香蕉", "菠萝", "葫芦娃", "口罩") # 香蕉 菠萝 ('葫芦娃', '口罩') 娃哈哈 默认值生效
chi("香蕉", "菠萝", "葫芦娃", "口罩",c="苹果")#香蕉 菠萝 ('葫芦娃', '口罩') 苹果

이때 키워드를 지정하지 않으면 모든 기본값이 유효한 것으로 확인됩니다. 매개변수를 사용하면 기본값이 항상 유효합니다.
3. 키워드 인수를 동적으로 수신합니다: 최종 순서(*): 위치 매개변수> 이 경우에는 위치 매개변수만 수신할 수 있으며 **를 사용합니다. Python에서 동적 키워드 매개변수를 수신합니다. (형식 매개변수에는 위치 매개변수와 기본값 매개변수 두 가지 유형만 있습니다.)
*args 위치 매개변수 수신은 tuple
**kwargs 키워드의 동적 매개변수이며, 수신되는 내용은 다음과 같습니다. 사전
예를 들어

def func(**kwargs): # key word arguments
    print(kwargs)  #{'a': 10, 'b': 20, 'jay': '周杰伦', 'jj': '林俊杰'}
func(a=10, b=20, jay="周杰伦", jj="林俊杰")

2. 무적 모드, 무엇이든 수신 가능

def fun(*args, **kwargs):
    print(args, kwargs)
fun("3","2",a="hello")  #('3', '2') {'a': 'hello'}

4.* 및 **실제 매개변수 위치에서 매개변수 사용

1

*의 의미는 분산을 의미합니다. broken은 목록 및 문자열과 같은 반복 가능한 객체입니다. 형식 매개변수는 집계를 나타냅니다.
def func(*args): # 여기서는 전달된 매개변수를 튜플로 집계하는 것과 같습니다 print(args)
lst = "Wahaha"
func(*lst) # * 실제 매개변수 위치는 분리를 의미하며, 분리는 Iterable 객체입니다
2. 실제 매개변수 위치**에서는 사전이 분리됩니다
def func(**kwargs ): # ** 수신된 키워드 매개변수를 사전으로 묶음(집계)
print(kwargs) # 사전이어야 함
dic = {"Zhang Wuji": "Master of Mingjiao", "Xie Xun": "골든 리트리버 라이온 킹 ", "Fan Yao": "빛의 우익 사절"}
func(Zhang Wuji=dic['Zhang Wuji'], Xie Xun=dic ['Xie Xun'], Fan Yao=dic['Fan Yao'])
func(**dic) # 여기서 **는 사전을 분리하기 위한 것입니다. 사전의 키를 매개변수의 이름으로 사용하고, 사전의 값을 매개변수의 값으로 사용합니다. 형식 매개변수의 경우 두 결과는 {'Zhang Wuji': 'The Leader of the Ming Cult', 'Xie Xun': 'The Golden Retriever Lion King', 'Fan Yao': 'The Right Envoy of Light'와 동일합니다. '}

2. 네임스페이스:

def fun():
    a=10
fun()
print(a)   #a 此时不存在

이름과 값 사이의 관계를 저장하는 공간에 이름을 부여합니다: 네임스페이스. 변수가 저장될 때 이 공간에 저장됩니다.

1. 전역 네임스페이스 --> py 파일에서 함수 외부에 선언된 변수는 전역 네임스페이스에 속합니다.

2. 로컬 네임스페이스 --> 함수에 선언된 변수는 로컬 네임스페이스에 배치됩니다. 3. 내장 네임스페이스 - -> Python 인터프리터에서 제공하는 이름, list, tuple, str, int를 저장합니다. 이는 내장 네임스페이스입니다
2. 로딩 순서:
1. 내장 네임스페이스 2. 전역 네임스페이스 3. 로컬 네임스페이스(함수 실행 시)
3. 값 순서:
1. 로컬 네임스페이스 2. 글로벌 네임스페이스 3. 내장 네임스페이스

3. 범위

는 범위에 따라 전역 범위로 구분됩니다. 유효 범위 및 로컬 범위
전역 범위: 내장 네임스페이스와 전역 네임스페이스를 포함합니다. 전체 파일 내 어디에서나 사용할 수 있습니다(위에서 아래로 한 줄씩 실행). function. 범위 네임스페이스: 1. 전역 범위: 전역 네임스페이스 + 내장 네임스페이스
2. 로컬 범위: 로컬 네임스페이스
globals()
함수를 통해 전역 범위의 내용을 볼 수 있습니다.
locals()
로컬 범위의 변수 및 함수 정보를 봅니다. locals()는 현재 범위의 내용을 봅니다.

def fun():
    a=10
    print(locals())   #{'a': 10}
fun()
print(globals())   #显示的没有a的信息
print(locals()) #此时和globals一样,显示的没有a的信息,因为他显示的是当前作用域中的内容.
4. 함수 중첩 주로

글로벌 및 비로컬

두 가지 함수를 사용합니다.
global: 전역 변수를 로컬로 도입 Nonlocal: 로컬로 가장 가까운 레이어에 변수를 도입하므로 첫 번째 레이어 함수에서는 전역 변수를 도입할 수 없습니다.See 아래 그림을 이해하면 중첩의 의미를 이해할 수 있습니다


관련 권장 사항:

Python 네트워크 프로그래밍에 일반적으로 사용되는 함수 요약

PHP의 문자열 함수 전체 요약

위 내용은 Python의 함수에 대한 포괄적인 요약(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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