2017-12-26 13 views
2

개인적으로 Pass와 None을 사용하는 의미의 차이점을 알고 싶습니다. 나는 실행의 차이를 발견 할 수 없었다.Pass와 None의 차이점은 무엇입니까?

추신 : 나는 비슷한 질문을 찾을 수 없습니다. 당신이 그것을 발견하면, 그것을 지적하시기 바랍니다.

감사합니다.

+0

다만 몇몇 세부 사항을 추가 : 방법 항목 : I 대 범위 (10) : 경우 나 == 6 : 방법 1 및 방법 2의 차이 란 없음 인쇄 ("안녕이 !!") 잉크 (I) 방법 2 : 제가 대 범위 (10) : 만약 == 6 패스 인쇄 ("안녕!") 잉크 (I) – GSAT

답변

4

pass입니다. 이와 같이 모든 곳에서 사용할 수 있기 때문에 진술을 사용하여 아무 것도 할 수 없습니다.

Noneatom이고 가장 간단한 형태의 표현입니다. 또한 키워드이고 "nothing"에 대한 상수 값입니다 (NoneType의 유일한 인스턴스). 표현식이므로 모든 표현식에서 표현식이 유효하다는 것이 타당합니다.

일반적으로 pass는 다음 예제와 같이 빈 함수 본문을 의미하는 데 사용됩니다 유일한 문은 무 조작 문 pass 때문에

def foo(): 
    pass 

이 기능은 아무것도하지 않습니다.

표현식이 유효한 함수 본문도 있기 때문에, 당신은 또한 None를 사용하여이를 작성할 수 : 함수가 동일하게 작동되지만

def foo(): 
    None 

, 그것은 조금 다른 표현은 (일정 동안) 여전히 때문에 평가 되더라도 (즉시 폐기 되더라도).

+0

감사합니다. 그게 제가 찾고 있던 정확한 차이입니다. – GSAT

2

간단히 말해 None은 공백을 나타내는 변수에 할당 할 수있는 값입니다. 그것은 기본 상태로 유용 할 수 있습니다 :

a = None 
def f(): 
    a = 5 
f() 

pass는 NOP처럼되는 문입니다. 파이썬 대신 들여 쓰기를 사용하기 때문에

C와 같은 언어에서
def f(): 
    pass 

, 당신은 단순히 중괄호 void f() { } 사이에 아무것도 넣어하지에 의해 빈 함수를 정의 할 수있을 것이다, 그러나 : 그것은 당신이 예를 들어, 기능 명세서를 정의 할 때 유용 할 수 있습니다 중괄호로 블록을 정의하려면 의 내용을으로 몸에 넣어야하며 pass은 거기에 넣는 관용적 인 요소입니다. 절대 차이의

+0

와우 이것은 좋은 설명입니다. "C와 유사한 언어에서, 중괄호 void f() {} 사이에 아무 것도 넣지 않고 빈 함수를 정의 할 수 있지만, 파이썬은 블록을 정의하기 위해 들여 쓰기 대신 들여 쓰기를 사용하기 때문에, 몸, 그리고 패스는 거기에 넣는 관용적 인 것이다. " 감사. –

0

pass 내지 None

pass (대문자 P없이) 파이썬, 오목 기본 언어 일 수 있기 때문에 새로운 방법을 정의하면되도록

에는 일부 있어야 그 후 코드. 당신은 해킹에 대한 pass 키워드이 문제를 사용할 수 있도록

def method_a(): 
    some_thing = 1 # Have to do some thing 

그렇지 않은 경우는 예외가 발생한다.

def method_a(): 
    pass # Do nothing 

None :

그래서 매우 다른의 None 키워드는 빈 데이터 수 또는 데이터를 양도 할 수 없습니다 자바 또는 C와 같은 다른 언어에서 null 키워드 같은 조금있다 그런 식으로.

[] == None 
null == None 
() == None 
...