소스 코드에서 파이썬 함수의 행 번호를 얻고 싶습니다. 난 런타임이 무엇인지 은 또한 결과의 행 번호를 부여파이썬 모듈에서 (데코레이터가 있거나없는) 함수의 줄 번호를 얻는 방법은 무엇입니까?
inspect.getsourcelines(object)
검사 모듈은, 클래스, 메소드
가보고했다 개체이다.데코레이터가있는 메소드의 경우 라인 번호를 참조하십시오. 위의 inspect 함수 포인터가 원하는 함수의 소스 코드가 아닌 실제 데코레이터의 소스 코드로 반환됩니다. 이렇게하려면 어떻게해야합니까? (인터프리터는 런타임에 데코레이터 내부의 래핑 (wrapping) 기능과 같은 기능을하지만, 잘못된 것일 수도 있음을 알고 있습니다.)
나는 expln을 주셔서 감사합니다. 심지어 'func_code'를 사용하면 라인 번호를 얻지 못합니다. 꾸미기 소스 코드. 내가 설정 라인을 무시 무시하고 진행합니다. 모든 데코레이터가있는 메소드의 경우. 내 질문은 지금 메서드가 _any_ 데코레이터인지 아닌지 (데코레이터 이름은 이전에 알려지지 않았 음) – Hari
@ 하리 : 데코레이터가 원하는 모든 것을 반환 할 수 있습니다 (심지어 클로저가 아니거나 심지어 같은 함수 일 수도 있음). 함수를 데코 레이팅했는지 또는 함수 객체를 제공하지 않았는지를 알 수있는 100 % 확실한 메서드가 없기 때문에 입력을 받았을 가능성이 있습니다. – 6502