2013-08-01 7 views
2

그래서 주어진 객체 인스턴스에서 문자열을 반환하는 함수 나 문자열이되는 변수를 갖고 있습니다. 기본적으로함수로 호출하거나 파이썬에서 문자열로 사용하기의 약식

는 :

def evalstr(var, someob): 
    if callable(var): 
     return var(someob) 
    else: 
     return var 

그것은 내장있을 것입니다 뭔가처럼 보인다. 거기에 깨끗한 속기/내장 함수가 있나요?

+3

내장 기능이 없기 때문에 짧은 방법이지만 '짧습니다! = 더 좋습니다.' 귀하의 현재 기능은 명확하고 읽기 쉽고, 첫눈에 무엇을하는지 정확하게 보여줍니다. – Wessie

+1

변경하려는 내용을 완전히 이해하고 있는지 확신 할 수 없지만 단어가 적거나 "우아한"코드 만 사용하려는 경우 3 단계로 변경하십시오. –

답변

0

아니요, 속기가 없습니다. 좋은 생각이 아니기 때문입니다. 일 수 있고, 위의 코드는 try/except TypeError 절이지만, 그와 같은 기능이 유용 할 경우에는 상상할 수 없습니다 (어쩌면 우리에게 계몽 수 있습니까?). 이 함수에 대한 docstring은 함수 본문보다 더 길 것이며, 함수의 이름만으로는 함수의 기능을 유도 할 수 없다. 그래서 여기서 정보가 너무 작아서 유용하지 않을 것입니다 (그리고 당신은 우리에게 전체 유스 케이스를 보여 주어야합니다), 아니면 (내 추측에 따르면) 당신이 잘못된 길을 가고 있습니다.