인프런 커뮤니티 질문&답변

bee님의 프로필 이미지
bee

작성한 질문수

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)

파이썬 코루틴의 이해

asyncio.run 질문

작성

·

235

1

안녕하세요! 

대단한 질문은 아니지만...  파이썬 코루틴의 이해 강의 7:49쯤을 보다가 보다가 갑자기 궁금한 점이 생겨서 질문 남깁니다.

==================================

def hello_world():

    print("서브 루틴")

    return 123

 

if __name__ == "__main__":

    print(hello_world())

==================================

서브 루틴인 위 함수를 실행시키면

>> 서브 루틴

     123

이렇게 프린트값과 return값이 모두 출력되는데

 

 

==================================

import asyncio

 

async def hello_world():

    print("코루틴")

    return 123

 

if __name__ == "__main__":

    asyncio.run(hello_world())

==================================

이런 asyncio.run으로 함수를 실행시키면

>> 코루틴

 

이렇게 아래 123 리턴값은 생략된 채로 출력이 되어서, 왜 리턴은 따로 출력이 안 되는지 궁금합니다! 강의 항상 잘 듣고 있습니다. 감사합니다!

답변 2

1

윤상석님의 프로필 이미지
윤상석
지식공유자

안녕하세요!

연말이라 이것저것 때문에 답변이 늦었습니다. ㅠㅠ

JK님 말씀처럼 print 라는 메소드에 결과 값을 담아야 출력이 됩니다.

만약, print(asyncio.run(hello_world())) 로 하면 동일한 결과가 나올 것입니다.

1

위의 함수에서는 print()가 있기 때문에 return 123을 출력합니다.

마찬가지로 위의 print(hello_world())도 hello_world() 로만 호출하면 123은 출력되지 않습니다.

같이 배우는 입장으로 알고있는 정도로 공유드리는 것이라 디테일하게 설명드리지 못하겠네요..!

 

강사님께서 더 자세히 설명해주실 것이라 생각됩니다~

bee님의 프로필 이미지
bee

작성한 질문수

질문하기