Son zamanlarda boost-python'un varlığını keşfettim ve görünürdeki basitliğiyle hayrete düştüm. Bunu denemek istedim ve varolan bir C++ kütüphanesini sarmalamaya başladım. HaliyleBoost python'da bir init/cleanup işlevi nasıl yapılır
:
temel kütüphane API çağrıları sarma yaparken oldukça basit (özel bir şey, sadece normal işlev çağrıları ve çok yaygın parametreler), ben düzgün başlatma/temizleme fonksiyonları sarmak için nasıl bilmiyorum , benim C++ kitaplığı, program başladığında arayanın önce mylib::initialize()
aramasını ve bitmeden önce mylib::cleanup()
'u çağırmasını gerektirir (aslında bununla ilgilenen bir başlatıcı nesnesi de vardır, ancak muhtemelen ilgisizdir).
Takviye python'u kullanarak nasıl sarmalıyım? mymodule.initialize()
ve mymodule.cleanup()
çağırmak için bir Python kullanıcıyı zorlama
initialize()
numaralı çağrı, modül içe aktarıldığında ve
cleanup()
numaralı çağrı da python komut dosyası bittiğinde de yapılır.
Bunu yapmanın bir yolu var mı? Değilse, en zarif çözüm nedir?
Teşekkür ederiz.
Bunu yapmanın en iyi yolu olarak görüyorum. Boost :: python ile çoğu zaman fonksiyonellik konusunda uzmanlaşmanız gerekiyorsa, yukarıdaki gibi basit bir yapı oluşturursunuz. –
Cevabınız için teşekkür ederiz. Ben bir denemek ve sen-ecek tutmak bekliyorum :) – ereOn
Ben derlemek mümkün 'class_' ile class__' değiştirmek zorunda kaldı. Ve son 2 satırı() python'u şikayet etmeyecek şekilde değiştirmeliydi. Çok teşekkür ederim. Değişiklikleri yansıtmak için cevabınızı düzenler miyim? – ereOn