스택큐힙리스트

변수의 이름을 문자열로 받아오기 본문

카테고리 없음

변수의 이름을 문자열로 받아오기

스택큐힙리스트 2023. 4. 14. 02:19
반응형

저는 이미 How to get a function name as a string?를 읽었습니다.

변수를 위해서도 같은 작업을 어떻게 할 수 있나요? 함수와는 달리, Python 변수는 __name__ 속성이 없습니다.

다른 말로 하면, 나에게 변수가 있다면:

foo = dict()

foo['bar'] = 2

실제 사전의 이름으로 열 이름이 주어지는 경우 #$ ** ^ # * & $ &을 위해 함수/속성, 예 : # $$ #! ^ # & $ &을 찾고 있습니다.

# List of dictionaries for my DataFrame

list_of_dicts = [n_jobs, users, queues, priorities]

columns = [retrieve_name(d) for d in list_of_dicts]

답변 1

Python 3.8에서는 f-string 디버깅 기능을 간단히 사용할 수 있습니다.

>>> foo = dict()

>>> f'{foo=}'.split('=')[0]

'foo'

이 방법의 단점 중 하나는 'foo'를 출력하려면 f'{foo=}'를 직접 추가해야 한다는 것입니다. 다시 말해, 변수의 이름을 이미 알고 있어야 합니다. 다시 말해, 위의 코드 스니펫은 그냥 다음과 정확히 같습니다.

>>> 'foo'

답변 2

변수의 이름을 문자열로 가져오기는 프로그래밍에서 매우 중요한 부분 중 하나입니다. 이 기능은 변수를 프로그램적으로 처리하고 제어하는 데 매우 유용합니다. 그러나 이 작업은 몇 가지 문제를 해결해야하지만 가능합니다. 그러므로 변수 이름을 문자열로 가져오는 방법이 필요합니다.

변수 이름을 문자열로 가져오는 가장 일반적인 방법은 리플렉션(Reflection)입니다. 이 기술은 객체의 메타데이터를 조사하여 해당 객체의 내부 작업을 분석하는 것을 의미합니다. 개발자는 변수의 이름에 대한 정보와 함께 해당 변수의 메타데이터를 찾을 수 있으며, 이는 C#과 같은 일부 언어에서 가능합니다.

문자열로 변환하기 위해 변수 이름에 대한 리플렉션을 사용하는 경우, 첫 번째 단계는 대상 클래스 또는 구조체를 참조하는 Type 개체를 가져오는 것입니다.

예를 들어, 다음 코드에서는 Type 개체를 취득합니까.

Type type = typeof(MyClass);

그런 다음, 이를 사용하여 변수 이름을 가져올 수 있습니다. 이 경우, GetFields, GetProperties, GetMethods 및 GetMembers 등의 메서드를 사용하여 변수 이름에 대한 어셈블리 정보를 가져올 수 있습니다.

예를 들어, 다음 코드는 대상 클래스의 모든 공용 필드에 대한 이름을 가져옵니다.

foreach (FieldInfo field in type.GetFields(BindingFlags.Public | BindingFlags.Instance))

{

Console.WriteLine(field.Name);

}

또한 이 방법은 변수 이름을 다양한 용도로 사용할 수 있습니다. 예를 들어, 변수 이름을 로그에 기록하거나 데이터베이스의 열 이름으로 사용할 수 있습니다. 또한 이 방법은 디버깅에도 매우 유용합니다. 만약 변수가 예기치 않게 변경되거나 수정되었다면, 개발자는 로그에 기록한 변수 이름을 사용하여 문제를 신속하게 해결할 수 있습니다.

결론적으로, 변수 이름을 문자열로 가져오는 것은 매우 유용한 기능입니다. 이를 사용하면 변수를 제어하고 처리하는 데 더욱 쉬워집니다. 리플렉션을 사용하여 변수 이름을 가져올 수 있으며, 이를 이용하여 다양한 용도로 사용할 수 있습니다. 이 기능은 프로그래밍에서 매우 중요하며, 개발자들은 이를 활용하여 코드를 더욱 효율적으로 작성할 수 있습니다.

반응형
Comments