Python return 문장은 어떻게 결과를 호출로 되돌려줍니까

return 문장은 결과를 호출된 곳으로 되돌려주고 프로그램의 제어권을 함께 되돌려주는 것이다
프로그램이 만났던 첫 번째 리턴으로 실행되면 되돌아옵니다. (def 블록을 종료합니다.) 두 번째 리턴을 실행하지 않습니다.
두 개의 값을 반환하려면 한 줄로 작성하십시오.

def a(x,y):
  if x==y:
    return x,y
print a(3,3)<br><br>>>> 3,3
그러나 함수체에 return 문장이 하나만 있다는 것은 아니다. 예를 들어

def test_return(x):
  if x > 0:
    return x
  else:
    return 0
함수에 return이 없습니다. 기본 return에는 None 객체가 있습니다.
귀속 함수에 return이 없는 경우:

def gcd(a,b):
   if a%b==0:
     return b
   else:
     gcd(b,a%b)
분석:else에return이 없으면 출구가 없습니다. 이 프로그램은 내부에서 실행되고 프로그램이 되돌아오는 값이 없습니다.
python과 print의 차이점:

x = 1
y = 2
def add (x, y):
  z = x + y
  return z
print (add(x,y)


x = 1
y = 2
def add (x, y):
  z = x + y
  print z
print (add(x,y))
상호작용 모드에서return의 결과는 자동으로 인쇄되며, 스크립트로 단독으로 실행될 때print 함수가 필요합니다.
기본적으로 return 함수를 만나면 호출자에게 되돌아오지만 try,finally 상황을 제외합니다.

def func(): 
  try: 
    print 98 
    return 'ok' #  
  finally: #finally  
    print 98 
 
print fun()
출력:
98
98
ok
함수는 반환값으로 반환됩니다.
태그:python

def lazy_sum(*args):
  def sum():
    x=0
    for n in args:
      x=x+n
    return x
  return sum
lazy_sum(1,2,3,4,5,6,7,8,9) # lazy_sum  , sum  。
f=lazy_sum(1,2,3,4,5,6,7,8,9)
print(type(f))
print(f()) #  f() ,  sum  ,
이것은 사실 가방을 닫는 것이다.
함수 목록을 반환합니다.

def count():
  fs = []
  for i in range(1,4):
    def f():
      return i*i
    fs.append(f)
  return fs
f1, f2, f3 = count()
print(f1())
print(f2())
print(f3())
 :
9
9
9
실행 절차:
i=1, for순환을 실행하면 함수 f의 함수 주소를 되돌려줍니다. 목록 fs의 첫 번째 위치에 존재합니다.
i=2, fs 목록에서 첫 번째 요소가 가리키는 함수 중의 i는count 함수의 국부 변수이기 때문에 i도 2를 가리킨다.그리고 for 순환을 실행하면 함수 f의 함수 주소를 되돌려줍니다. 목록 fs의 두 번째 위치에 존재합니다.
i=3, 같은 이치로 fs 목록의 첫 번째와 두 번째 요소가 가리키는 함수 중의 i 변수가 3을 가리킨다.그리고 for 순환을 실행하면 함수 f의 함수 주소를 되돌려줍니다. 목록 fs의 세 번째 위치에 존재합니다.
따라서 f1()을 호출할 때 함수의 i는 3을 가리킨다.
f1():
return 3*3
f2(), f3() 결과 모두 9
패키지를 닫을 때 명심해야 할 점은 반환 함수는 순환 변수를 인용하지 않거나 다음에 변화할 변수를 인용하지 않는다는 것이다.즉, 안에 있는 함수 (이 예는 f () 이고, 외부 함수 (이 예는count ()) 의 순환 변수를 인용하지 마십시오
만약 반드시 순환 변수를 도입하려면 함수를 다시 만드는 것입니다. 이 함수의 매개 변수로 순환 변수의 현재 값을 귀속합니다. 이 순환 변수가 다음에 어떻게 바뀌든지 간에 함수 매개 변수에 귀속된 값은 변하지 않습니다.

def count():
  fs=[]
  for i in range(1,4):
    def f(j):
      def g():
        return j*j
      return g
    fs.append(f(i))
  return fs

f1,f2,f3=count()
print(f1())
print(f2())
print(f3())
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기