Python에서 문자열을 변수 이름으로 변환

Sahil Bhosale 2023년1월30일
  1. Python에서globals()locals()를 사용하여 문자열을 변수 이름으로 변환
  2. Python에서exec()를 사용하여 문자열을 변수 이름으로 변환
Python에서 문자열을 변수 이름으로 변환

파이썬에서는 문자열 값을 변수 이름으로 변환 할 수있는 다양한 방법이 있습니다. 이 기사에서는이를 달성 할 수있는 다양한 방법에 대해 설명합니다.

어떤 사람들은 파이썬 프로그램이 실행되는 동안 변수 이름을 동적으로 정의하기 위해 이렇게 할 수 있습니다. 아래 표시된 방법을 사용하여 문자열을 변수 이름으로 변환하는 것은 일부 문제가 발생할 수 있으므로 프로덕션 용 소프트웨어를 개발하는 동안 권장되지 않습니다. 네, 가능 합니다만,주의 해주세요.

Python에서globals()locals()를 사용하여 문자열을 변수 이름으로 변환

globals()

Python의globals()함수는 현재 전역 기호 테이블의 사전을 반환합니다. 전역 심볼 테이블은globals()함수를 사용하여 액세스 할 수있는 프로그램의 전역 범위와 관련된 모든 정보를 저장합니다.

user_input = input("Enter string for variable name: \n")
globals()[user_input] = 50
print(apple)
print(type(apple))

출력:

globals() 함수를 사용하여 문자열을 변수 이름으로 변환

여기서 가장 먼저하는 일은input()함수를 사용하여 사용자로부터 입력을 받고 그 안에Enter a string for a variable name:문자열을 전달하는 것입니다. 그런 다음 사용자가 입력 할 값이 무엇이든 해당 값은user_input변수에 저장됩니다. 여기서는 사용자가user_input에 저장 될 문자열 값으로apple을 입력 할 것으로 예상합니다. 사용자가apple이외의 값을 입력하면NameError: name 'variable' is not defined오류가 발생합니다. apple의 값도 인쇄 한 다음 나중에 코드에서 유형을 확인하기 때문입니다.

사용자가 올바른 값을 입력 한 경우globals()를 사용하여 전역 사전을 수정하여 전역 사전을 수정하고apple변수에 값을 할당 할 수 있습니다. 여기서는apple변수에50을 할당했습니다.

locals()

Python의locals()함수는 현재 지역 기호 테이블의 사전을 반환합니다. locals()함수를 사용하여 로컬 기호 테이블에 액세스 할 수 있습니다. locals()함수는globals()함수와 거의 동일한 방식으로 작동합니다. 유일한 차이점은locals()는 로컬 심볼 테이블에 액세스 할 수 있고globals()는 글로벌 심볼 테이블에 액세스하여 사전을 반환 할 수 있다는 것입니다.

user_input = input("Enter string for variable name: \n")
locals()[user_input] = 50
print(apple)
print(type(apple))

출력:

globals() 함수를 사용하여 문자열을 변수 이름으로 변환

이 코드는globals()와 동일한 방식으로 작동합니다. 유일한 차이점은 여기서locals()함수를 사용했다는 것입니다.

Python에서exec()를 사용하여 문자열을 변수 이름으로 변환

이 작업을 수행하는 또 다른 방법은 Python에서exec()함수를 사용하는 것입니다. exec()함수는 Python 프로그램을 동적으로 실행하는 데 사용됩니다. 문자열 값Elon을 저장하는name변수가 있습니다.

name = "Elon"
exec("%s = %d" % (name, 100))
print(Elon)

출력:

100

exec()함수 내에는 각각 문자열 값과 10 진수 값에 대한 자리 표시 자로 사용되는%s%d가 있습니다. 이는 할당 연산자=의 도움으로 문자열에 정수 값을 할당한다는 것을 의미합니다. %s%d는 모두 따옴표=로 묶여 있습니다. 그런 다음 내부에 두 가지가있는 괄호가 있습니다. 첫 번째는 생성 한 변수, 즉Elon값을 포함하는name이고 두 번째는 정수100입니다.

여기서name변수 대신 해당 변수 내의 값이 대체됩니다. 정수100Elon에 할당됩니다. Elon은 변수 이름이되며이를 인쇄하면100이 출력으로 표시됩니다.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

관련 문장 - Python String

관련 문장 - Python Variable