인공지능을 좋아하는 곧미남

[python] 동일한 함수에서 출력을 다르게 하고 싶을때 문자열로 출력 파라미터를 정하는 방법! 본문

code_study/python world

[python] 동일한 함수에서 출력을 다르게 하고 싶을때 문자열로 출력 파라미터를 정하는 방법!

곧미남 2024. 12. 2. 17:51

오늘은 제목과 같이 동일한 함수에서 출력 파라미터를 다르게 하기 위한 방법을 소개하겠습니다. 여기서 활용하는 방법은 python 내장 함수인 locals()와 문자열을 활용한 방법입니다!

 

- 코드 내용 -

def forward(x, y, z, returns):
    
    xy = x + y
    xz = x + z
    yz = y + z
    
    xyz = xy + xz + yz
    
    # variables 출력: {'x': 1, 'y': 2, 'z': 3, 'xy': 3, 'xz': 4, 'yz': 5, 'xyz': 12}
    # locals()를 사용하면, {'변수명', 변수값}으로 함수안에 모든 변수들의 정보를 가지는 딕셔너리 변수를 얻을 수 있음.
    variables = locals()
    
    return tuple(variables[r] for r in returns)
    


if __name__ == "__main__":
    

    result = forward(1, 2, 3, ("xy", "xyz"))
    
    print(result)

 

위 코드에서 variables = locals()의 출력이 아래와 같이 해당 함수내에 속한 모든 변수들의 정보를 {'변수명': 변수값}의 key-value 형태인 딕셔너리로 출력되는 것을 볼 수 있습니다.

variables 출력: {'x': 1, 'y': 2, 'z': 3, 'xy': 3, 'xz': 4, 'yz': 5, 'xyz': 12}

 

그래서, 입력 파라미터를 tuple로 ("출력하고 싶은 변수명1", "출력하고 싶은 변수명2", ...) 이렇게 지정하고, tuple(variables[r] for r in returns) 이 값을 return 해버리면, 출력하고 싶은 변수명1, 2, 3 ... 순서대로 문자열이 dict에 매칭되어 value를 출력하게 됩니다.

 

반응형
Comments