[英]Cython and Python class coexistence in ipython?
在ipython環境中具有相同類並存的最佳方法是什么?
我想逐步將某些類(從根類開始)從Python遷移到Cython。 我希望能夠同時運行兩個版本(在ipython env中),因此我可以比較性能,並可以在需要時回退。
即使不是我想要的方式,是否還有其他方法可能會起作用。
對於當前的實驗,我首先重命名類並分別導入它們。 鐵
import pyximport; pyximport.install()
from blah import *
from c_blah import *
b = Blah()
cb = c_Blah()
%timeit -n 1000 b.op()
%timeit -n 1000 cb.op()
這很麻煩,因為我不得不重命名所有的class-attr / method訪問。 同樣,一旦我下降到層次結構,這也無法解決我的難題。
還有其他想法如何解決嗎? 我的意思是在Cython中進行增量編碼。
cswiercz說得很對:
from blah import Blah
from cblah import Blah as cBlah
可以,但是需要對層次結構進行修改。 將保持開放其他想法。
您可以使用import x as y
方法重命名模塊中的定義。 例如,如果foo.py
包含函數func
而bar.pyx
也包含函數func
(也許這是您試圖編寫Cython版本的foo.func()
),則可以在計時腳本中執行以下操作:
# separate imports
from foo import func as func_py
from bar import func as func_cy
# use the code
func_py(2.0)
func_cy(2.0)
這樣,您可以在foo
和bar
模塊中保留有意義的命名方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.