2017-11-14 5 views
-6

코드 블록의 시작과 끝에 필요한 중괄호가 있기 때문에 Java에서 매우 쉽습니다. 그래서 찾을 프로그램을 작성할 수 있습니다. 중괄호는 각 기능에 레이블을 붙입니다.파이썬의 각 함수에 대한 코드 줄 수를 계산하는 방법을 찾으려고 시도

파이썬에서 내가 가진 문제는 함수가 끝날 때 알려주는 일종의 마커를 찾는 것입니다. 한 솔루션은 각 줄마다 '\ t'를 탐지하는 체계를 파악하는 것입니다. 기능 블록의 시작을 결정하는 몇 가지 방법은 무엇이며 끝입니까?

+2

을 검사 활용할 수 있습니다 질문에 대답해라. 그러면 왜 묻는거야? – Julien

+0

파이썬 소스 코드의 라인 계산에 대해 묻고 싶습니다. 또는 함수의 라인 카운트를 _during runtime_, 즉'def linecount (function) : return line_count_of_function'으로 가져 오는 것에 대해 묻고 있습니까? –

답변

0

블랭크가 일반적으로 탭보다 바람직하며, 혼합은 분명히 받아 들일 수 없다. 관계없이 함수를 다른 함수 및 클래스 내부에서 정의 할 수 있으므로 q가 약간 더 미묘합니다.

합니다 (REPL에 빈 줄이 데프 종료됩니다 동안 BTW, 즉 일반적으로 그렇지 않다.)

당신이 이미를주는 모듈을

In [1]: import inspect 

In [2]: def h(): 
    ...:  a =9 
    ...:  b =8 
    ...:  return a+b 
    ...: 

In [3]: inspect.getsourcelines(h) 
Out[3]: ([u'def h():\n', u' a =9 \n', u' b =8\n', u' return a+b\n'], 1) 

In [4]: inspect.getsourcelines(h)[0] 
Out[4]: [u'def h():\n', u' a =9\n', u' b =8\n', u' return a+b\n'] 

In [4]: len(inspect.getsourcelines(h)[0]) 
Out[4]: 4 
관련 문제