多少遅れてしまいます。このスレッドでは:
module私は他のPythonインタプリタでプログラムの一部を透過的に実行しています。基本的には、関数やオブジェクトを他のインタプリタとインターフェースするプロキシに置き換えるデコレータや基本クラスを提供します。
これは互換性を目的としています。 python2
コードをpython3
に実行するか、pypy
からCモジュールにアクセスしてください。
次の例では、pypy
を使用してループを高速で4倍速で実行します(python
)。
#!/usr/local/bin/python
from cpy2py import TwinMaster, twinfunction
import sys
import time
import math
# loops in PyPy
@twinfunction('pypy')
def prime_sieve(max_val):
start_time = time.time()
primes = [1] * 2 + [0] * (max_val - 1)
for value, factors in enumerate(primes):
if factors == 0:
for multiple in xrange(value*value, max_val + 1, value):
primes[multiple] += 1
return {'xy': [
[primes[idx] == 0 for idx in range(minidx, minidx + int(math.sqrt(max_val)))]
for minidx in range(0, max_val, int(math.sqrt(max_val)))
], 'info': '%s in %.1fs' % (sys.executable, time.time() - start_time)}
# matplotlib in CPython
@twinfunction('python')
def draw(xy, info='<None>'):
from matplotlib import pyplot
pyplot.copper()
pyplot.matshow(xy)
pyplot.xlabel(info, color="red")
pyplot.show()
if __name__ == '__main__':
twins = [TwinMaster('python'), TwinMaster('pypy')]
for twin in twins:
twin.start()
data = prime_sieve(int(1E6))
draw(**data)
とにかく私はこのpythonファイルの特定の関数を引数で呼び出すことができますか? – lamb
私は私の答えを編集しました –
それはあなたのために働くのですか? –