python - How to access an enum type by value in cython -


मुझे कुछ कोड दिया गया था जो इस तरह दिखता है:

"header.hpp" में:

  enum वर्ग my_enum_type {val1 = 0; ...}   

"header_lib.pyx" में:

  cdef extern से "header.hpp": enum my_enum_type: val1 = 0; ... ...   

बाद में "header_lib.pyx":

  def foo (): ... वापस my_enum_type.val1   

मुझे बताया गया था कि इसमें कोई समस्या नहीं होनी चाहिए, लेकिन यह मेरे अनुभव से अभी नहीं है, और इस पोस्ट में स्पष्ट है:

हालांकि, यह "val1" को अपने आप में नहीं पहचानता है, अगर मैं "वापसी val1" लिखता हूं ऐसा करने का सही तरीका क्या है?

आप एक enum को घोषित कर सकते हैं के रूप में:

  ctypedef enum विकल्प: OPT1, OPT2, OPT3   

या

  ctypedef enum विकल्प: OPT1, OPT2, OPT3   

और और उदाहरण हो सकता है:

  def मुख्य (): cdef विकल्प परीक्षण परीक्षण = OPT2 f (test) cdef void f (options) Inp): यदि inp == OPT1: प्रिंट ('OPT1') elif inp == OPT2: प्रिंट ('OPT2') elif inp == OPT3: प्रिंट ('OPT3')   

जब मुख्य () चल रहा है तो आपको "OPT2" मुद्रित दिखाई देगा। आप test को c या C ++ फ़ंक्शन को उसी तरह से पास कर सकते हैं जैसा कि cdef के लिए दिखाया गया है फ़ंक्शन।

Comments

Popular posts from this blog

c - Mpirun hangs when mpi send and recieve is put in a loop -

python - Apply coupon to a customer's subscription based on non-stripe related actions on the site -

java - Unable to get JDBC connection in Spring application to MySQL -