@ user2357112에 의해 설명되었습니다. #cython: cdivision=True
은 (는) from __future__ import division
과 모순됩니다. 이 코드는 예시 :
#cython: wraparound=False
#cython: boundscheck=False
#cython: nonecheck=False
#cython: profile=False
from __future__ import division
def main():
cdef double i, j
i = 0
j = 2
print 1/j
print 1/i
print 1/2
모금 :
print 1/i
ZeroDivisionError: float division
이 #cython: cdivision=True
추가가 줄 것이다 : 당신이 1/2
을 볼 수 있습니다
0.5
inf
0
가 바닥 부문으로 처리된다. 당신이 언급 한 바와 같이이 경우
내가 파이썬 2.X를 사용할 때 부동 소수점 부문을 원하는 목적지 플로트 포인트 1/2.
을 적용하는 것이 좋습니다
...
하면 라인을 스와핑 :
from __future__ import division
#cython: wraparound=False
#cython: boundscheck=False
#cython: nonecheck=False
#cython: profile=False
#cython: cdivision=True
합니다 모두 "the Cython global directives"을 취소하십시오. 왜냐하면 "코드 앞에 나타나야합니다 (그러나 다른 주석이나 공백 뒤에 나타날 수 있기 때문입니다").
'cdivision'과 true-division 모순이 아닙니까? C int와 같이 int를 나눈다고합니다. 다른 하나는 파이썬이 떠 다니는 것처럼 int를 나눕니다. – user2357112
나는 cython 지시어 이후에 미래의 import를 넣을 것이다. 향후 가져 오기는 주석 뒤에 나타날 수 있지만 컴파일러 지시문은 코드 뒤에 나타날 수 없습니다. – user2357112
@ user2357112 감사합니다. 나는 또한 당신이 당신의 첫번째 코멘트에서 의미하는 것을 본다. cdivision = False (기본값)입니다. – Jzl5325