나는 stats module에, SciPy의 소스 코드 줄 우연히 :Python에서 x == x가 False입니까?
return 1.0*(x==x)
이 1.0
아닌이 반환 뭔가? 즉, x == x
이 보유하는 x의 값이 False
입니까?
나는 stats module에, SciPy의 소스 코드 줄 우연히 :Python에서 x == x가 False입니까?
return 1.0*(x==x)
이 1.0
아닌이 반환 뭔가? 즉, x == x
이 보유하는 x의 값이 False
입니까?
IEEE 754 표준에 따라 비수 (NaN)는 비교 대상에 상관없이 항상 false를 비교해야합니다.
Python 2.7.2+ (default, Oct 4 2011, 20:06:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x=float("NaN")
>>> x==x
False
을 SciPy 개발자에게 – astrojuanlu
사용자 정의 유형은 당신이 원하는 무엇이든 할 수있는 평등 연산자를 재정의 할 수
x의 값에 따라 달라집니다Python 3.2.2 (default, Feb 10 2012, 09:23:17)
[GCC 4.4.5 20110214 (Red Hat 4.4.5-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class A:
... def __eq__(self, other):
... return False
...
>>> x=A()
>>> x==x
False
. 나는 소스에서 보았지만의 당신은 같은 것을 할 말을하지 않은 :
class A:
def __eq__(self,other):
return bool(random.getrandbits(1))
x = A()
지금
x == x
false를 반환 할 수 있습니다.
이 경우'x'는 무엇입니까? '__eq__' 메서드를 구현합니까? 그 방법의 결과가 예기치 않은 결과를 가져 왔습니까? 아마도 더 많은 문맥이 필요하다. –
a) 올바른 대답을 받아 들여야하는지 잘 모르겠다. 왜냐하면'NaN'에 대한 답과'__eq__' 메쏘드를 오버라이드하는 것이 요점을 가지고 있기 때문입니다. 그리고 b) 왜 *이 *이 코드가 있는지 깨닫게되었습니다. 'x' *와 같은 크기의 배열로 가득 찬 배열을 반환하기위한 것입니다. >>> 수입 NumPy와 NP로 >>> np.nan == np.nan 거짓 : – astrojuanlu
@NeilG 당신은 참으로 맞다 ... – astrojuanlu