작성
·
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은 출력되지 않습니다.
같이 배우는 입장으로 알고있는 정도로 공유드리는 것이라 디테일하게 설명드리지 못하겠네요..!
강사님께서 더 자세히 설명해주실 것이라 생각됩니다~