Python 함수 자습서 : 필수 매개 변수 및 기본 매개 변수

필수 매개 변수

위치 매개 변수는 올바른 순서로 함수에 전달되어야합니다. 호출시 번호는 선언시 번호와 동일해야합니다.

def power(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

print(pow(5,3))  #125

수정 된 power (x, n) 함수에는 x와 n의 두 가지 매개 변수가 있습니다.이 두 매개 변수는 위치 매개 변수입니다. 함수가 호출되면 전달 된 두 값이 매개 변수 x와 n에 위치 순서대로 할당됩니다.

기본 매개 변수

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

print(power(5)) #25
print(pow(3,3)) #27

기본 매개 변수는 함수 호출을 단순화 할 수 있습니다. 기본 매개 변수를 설정할 때 필수 매개 변수는 첫 번째이고 기본 매개 변수는 마지막 매개 변수입니다.

기본 매개 변수가 여러 개인 경우 호출 할 때 순서대로 기본 매개 변수를 제공 할 수 있습니다.

def enroll(name, gender, age=6, city='Beijing'):
    print('name:', name)
    print('gender:', gender)
    print('age:', age)
    print('city:', city)

enroll('Bob', 'M', 7)

산출:

name: Bob
gender: M
age: 7
city: Beijing

일부 기본 매개 변수를 순서대로 제공 할 수도 있습니다. 기본 매개 변수의 일부가 순서대로 제공되지 않으면 매개 변수 이름을 작성해야합니다.

enroll('Adam', 'M', city='Tianjin')

산출:

name: Adam
gender: M
age: 6
city: Tianjin

즉, city 매개 변수는 전달 된 값을 사용하고 다른 기본 매개 변수는 계속 기본값을 사용합니다.

기본 매개 변수는 변경 불가능한 객체를 가리켜 야합니다.

함수를 정의하십시오.

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def add_end(L=[]):
    L.append('END')
    return L

정상적으로 전화 할 때 :

L1 = add_end([1, 2, 3])
print(L1) #[1, 2, 3, 'END']

L2 = add_end(['x', 'y', 'z'])
print(L2) #['x', 'y', 'z', 'END']

그러나 기본 호출을 사용하는 경우 :

L1 = add_end()
print(L1) #['END']
L2 = add_end()
print(L2) #['END', 'END']
L3 = add_end()
print(L3) #['END', 'END', 'END']

기본 매개 변수는 []이지만 함수는 매번 마지막으로 'END'를 추가 한 후 목록을 "기억"하는 것처럼 보입니다.

그 이유는 다음과 같이 설명됩니다.

Python 함수가 정의되면 기본 매개 변수 L의 값이 계산됩니다. 즉, 기본 매개 변수 L도 변수이므로 함수가 호출 될 때마다 [] 객체를 가리 킵니다. 의 L이 변경되면 다음에 호출 될 때 기본 매개 변수의 내용이 변경되며 함수가 정의 될 때 더 이상 []가 아닙니다.

위의 예를 수정하려면 None 불변 객체를 사용하여 다음을 수행 할 수 있습니다.

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L

L1 = add_end()
print(L1) #['END']
L2 = add_end()
print(L2) #['END']
L3 = add_end()
print(L3) #['END']

불변 객체가 생성되면 객체 내부의 데이터를 수정할 수 없기 때문에 데이터 수정으로 인한 오류가 줄어 듭니다. 또한 개체가 변경되지 않기 때문에 멀티 태스킹 환경에서 개체를 동시에 읽을 때 잠금이 필요하지 않으며 동시 읽기에도 문제가 없습니다. 프로그램을 작성할 때 불변 객체를 디자인 할 수 있다면 최선을 다해 불변 객체를 디자인하십시오.

추천

출처blog.csdn.net/qdPython/article/details/112573371