2017-11-19 8 views
1

``이 사용됩니다변수 이름 인쇄 규칙은 무엇입니까? 변수가 documetation 문자열에 언급 될 때

def func(var): 
    """ 
    Parameter ``var`` is referred in a documetation string. 
    """ 

변수 이름을 인쇄하기위한 규칙은 무엇입니까?가 동일 할 것인가 (문자열이 사용 또는 예외의 메시지로 사용자에게 표시 할)

def func(var): 
    if not check1(var): 
     raise Exception("parameter ``var`` has to be...") 
    if not check2(var): 
     logger.warn("parameter ``var`` is...") 

답변

3

것은 그냥 인터프리터에서 몇 가지 예외를 생성하자

Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
[GCC 5.4.0 20160609] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> sdf 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'sdf' is not defined 
>>> mystr = 'sdf' 
>>> mystr.foo 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'str' object has no attribute 'foo' 

우리가 볼 수 있듯이를, 예외 메시지에 대한 일반적인 관행은 'name'에서와 같이 작은 따옴표 것으로 보인다 : 심지어

NameError: name 'sdf' is not defined 
AttributeError: 'str' object has no attribute 'foo' 

OP (@Itay)의 더 좋은 예 :

>>> def a(d): 
...  pass 
... 
>>> a() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: a() missing 1 required positional argument: 'd' 
+0

@Coal_ 실제로 돌 하나가없는 표준을 선언하는 것을 피하기 위해 reworded. – bgse

+0

@bgse 예제가 아닌 것은 변수 이름입니다. – Itay

+0

@Italy 요점은 런타임에 객체를 참조한다는 것입니다. 데프 A (D) : 패스 A() 형식 오류 : A()없는 한 필요한 위치 인수 : –

0

에 따라 다르다. 단일 backticks 또는 작은 따옴표를 사용하는 것을 좋아합니다.

"parameter `var` has to be [...]" 
"parameter 'var' has to be [...]" 

이중 backticks는 가독성을 상하게합니다. 그런데 이 없으면 double backticks를 사용하여 docstrings에서 변수를 참조 할 수 없습니다. 나는 스핑크스를 알고 대부분의 IDE/코드 분석 도구는 이중 역 따옴표를 필요로하지만, 당신은 따옴표를 붙일 수 있습니다 (객체가 수백 개가 아니라면 autodoc을 사용하지 않는 한).