2016-12-09 2 views
5

스핑크스 문서 페이지를 통해 읽었으며 역설적으로 var, ivar 및 cvar의 차이점에 대한 문서가 부족하다는 사실을 발견했습니다. 다른 사람이 인라인 코드에서 서로 다른 이름 공간의 차이점을 설명 할 수 있는지 궁금합니다.python의 스핑크스에서 var, cvar 및 ivar의 차이점은 무엇입니까?

예 :

class foo(object): 
    """ 
     :var str first: 
     :ivar str last: 
     :cvar str middle: 
    """ 

어떻게 서로 이러한 스핑크스 태그의 각각 다른 내가 설계대로 제대로 사용하는 올바른 어느 쪽이 어떻게 알 수 있습니까?

답변

1

어쩌면 thesr 특정 태그 사이의 구별에 대해 걱정하지 않고 단순히 문서가 있음을 나타 내기 때문에 당신이 전혀를 사용해야 할 경우 'var에'를 사용하는 스틱 :

다른 많은 정보 필드가 있습니다 만 그들은 중복 될 수 있습니다 : ... (포함) ... var, ivar, cvar : 변수에 대한 설명입니다. ...

참조 :

http://thomas-cokelaer.info/tutorials/sphinx/docstring_python.html

+1

"이 다른 많은 정보 필드는하지만 중복 될 수있다"나는 이것이 그들이 중복 있었다 여부에 관한보다 구체적인 것을 할 . 나는 그것이 사실 일 수는 있지만 이해가되지 않기 때문에 거의 믿지 않는다. 다른 리드는이를 확인할 수 있습니까? –

8

var 물론, 일반 변수입니다. 문서화하는 변수에 대해 더 이상 신경 쓰지 않는 경우에 사용하십시오.

ivar은 "인스턴스 변수"이거나 인스턴스 개체 (클래스의 인스턴스)에 설정된 변수입니다. 일반적으로 이것들은 파이썬에서 __init__ 메쏘드 안에 정의 될 것이다.

cvar은 "클래스 변수"이거나 클래스 개체에 직접 설정된 변수입니다. 일반적으로 클래스 문 내에서 설정되지만 클래스의 특정 메서드 외부에서는 설정되지 않습니다.

다음은 예입니다 :

class SomeClass(object): 

    cvar = 'I am a class variable' 

    def __init__(self): 
     self.ivar = 'I am an instance variable'