Domanda

è il loro modo per fare questo lavoro, senza sacrificare la cdef in CDEF chiamante? (Senza uso di cpdef o)

from array import *
from numpy import *
cdef class Agents:
    cdef public caller(self):
        print "caller"
        A[1].called()

    cdef called(self):
        print "called"


A = [Agents() for i in range(2)]

def main():
    A[0].caller()
È stato utile?

Soluzione

Per Cython A [1] sarà un oggetto Python. Se si vuole essere in grado di utilizzare ancora cdef, utilizzare getto automatico il chiamante:

cdef public caller(self):
    cdef Agents agent
    print "caller"
    agent = A[1]
    agent.called()

È possibile controllare con la modalità -a in Cython sapere se si sta utilizzando Python o C per ogni codice di linee. (Cython -a yourfile.pyx -> genererà un yourfile.html che è possibile sfogliare e controllare).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top