티스토리 뷰

반응형

현재 실행중인 라인번호를 알고싶은 경우가 있다.

이 경우 각 언어별로 다음과 같은 방법을 사용하면 된다.

 

Java

int currentLine = new Throwable().getStackTrace()[0].getLineNumber();
System.out.println("(line number)" + currentLine); // 2

C

#include <stdio.h>

void main() {
   printf("%s\n", __FILE__); // file name
   printf("%d\n", __LINE__); // line number: 5
}

C++

#include <iostream>
 
int main() {
    std::cout << __LINE__ << std::endl;        // 4
    return 0;
}

Python

# line number: 이 함수를 호출한 곳의 라인번호를 출력
def getLinenumber():
    import inspect
    cf = inspect.currentframe()
    return cf.f_back.f_lineno

# function name: 이 함수를 호출한 곳의 함수이름을 출력
def getfuncName():
    import inspect
    cf = inspect.currentframe()
	return cf.f_back.f_code.co_name

# file name: 이 함수를 호출한 곳의 파일이름을 출력
def getFilename():
    import inspect
    frame = inspect.stack()[1]
    module = inspect.getmodule(frame[0])
    filename = module.__file__
    return filename.split('/')[-1]
반응형
반응형
최근에 달린 댓글