Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python이 함수에서 튜플을 정의할 수 없는 이유는 무엇입니까?


Python 3.0부터 압축 해제 튜플을 함수의 매개변수로 정의하는 것이 더 이상 불가능합니다(PEP 3113). 다음과 같이 함수를 정의하려고 하면 -

def fn(a,(b,c)):
   pass


Python 인터프리터는 튜플의 첫 번째 괄호에 구문 오류를 표시합니다. 대신 튜플 객체를 매개변수로 정의하고 함수 내에서 압축을 풉니다. 다음 코드에서는 두 점의 x 및 y 좌표를 나타내는 두 개의 튜플 객체가 매개변수로 전달되어 두 점 사이의 거리를 계산합니다. 계산하기 전에 튜플 개체는 각각의 x 및 y 좌표에서 압축을 풉니다.

def hypot(p1,p2):
   x1,y1=p1
   x2,y2=p2
   import math
   hyp=math.sqrt((x1-x2)**2+(y1-y2)**2)
   return hyp

x=(10,10)
y=(20,20)
print ("hyp=",hypot(x,y))