파이썬에서 문자열을

그냥 쌩으로 더하는 함수를 만들면

str1="test"
str2="TEST"
for _ in range(100000):
    str1+=str2

는 한 4초정도 걸리거든요

string 리터럴을 계속 만들어내면서 새로할당하고 메모리공간을 비효율적으로 더하는거라서 그런건 이해하는데

이거를 함수안에 넣어버리면 바로 끝나더라구요?(.0x초 걸립니다)

def test():
#위의 함수 그대로


왜 그런걸까요

함수안에서 선언된 리터럴은 메모리할당 방식이 다른가요?