Continuo a vedere persone che scrivono wrapper per, ad esempio un modulo scritto in linguaggio X per usarlo in linguaggio Y. Volevo sapere le basi della scrittura di questi wrapper. Da dove si parte? La mia domanda qui è più specifica per libgnokii, come faccio a iniziare a scrivere i collegamenti Python per questo.Writing binding and wrapper
risposta
Si può iniziare leggendo questo: extending python with c or c++ E poi quando si decide che è troppo fastidio, è possibile controllare swig o eventualmente Boost.Python. ctypes potrebbe anche essere utile.
Ho eseguito il wrapping manuale di classi C++ e ho utilizzato swig. il sorso era molto più facile da usare, ma alla fine volevo fare cose che non erano facili da fare (o ero troppo pigro per capire come). Così ho finito per fare il wrapping manuale. È un po 'di lavoro, ma se conosci un po' di C, è molto fattibile.
È possibile iniziare guardando here per informazioni sull'estensione di Python con C. Probabilmente vorrai pensare a come tradurre l'API di libgnokii in qualcosa di Pythonic mentre ci sei. Se non vuoi fare molto lavoro, puoi semplicemente scrivere un involucro sottile che traduca tutte le chiamate API gnokii in funzioni Python.
- 1. OCaml + Menhir Compiling/Writing
- 2. WPF Datagrid binding and column display
- 3. CSV Writing to File Difficoltà
- 4. Netty channel.write not writing message
- 5. Writing Formula Sheets (Cheat Sheet) in LyX/LaTeX
- 6. TempData Wrapper
- 7. . Wrapper MTP/PTP netto?
- 8. Python Subversion libreria wrapper
- 9. WPF MenuItem Header and HeaderTemplate
- 10. header and footer and freemarker
- 11. Binding condizionale
- 12. Genera wrapper C da C++?
- 13. emberjs binding
- 14. Come convertire Float (classe Wrapper) in classe wrapper Integer?
- 15. come scrivere wrapper per 'allocare'
- 16. jstree move, drag and drop
- 17. RoutedCommands Executed and PreviewExecuted events
- 18. CUDA wrapper per Qt
- 19. Firefox C# Wrapper/Control
- 20. C# Ghostscript Wrapper
- 21. Unity GET/POST Wrapper
- 22. Lua Wrapper per C#?
- 23. C Wrapper per C++
- 24. Generico classe wrapper
- 25. Migliori IndexedDB Wrapper
- 26. authorize.net C# wrapper/library
- 27. FFmpeg wrapper metadati php
- 28. semplice wrapper jdbc
- 29. Wrapper servizio Web
- 30. Parametri wrapper CopyFileEx
COSÌ creare cose Pythonic significherebbe scrivere l'intera libreria come un modulo da zero? – tsudot
No, non necessariamente. Un esempio di quello che ho fatto: avevo una classe C++ di cui avevo bisogno per creare un oggetto prima che potessi usare una funzione (in questo caso, la funzione avrebbe dovuto essere statica). Invece di fare in modo che l'utente del modulo python seguisse gli stessi passi, ho appena incorporato un oggetto di quella classe nella mia estensione python e esposto la funzione come una funzione in un modulo python, nascondendo il fatto che apparteneva a una classe, che non era è davvero necessario Quindi, riordina un po 'le interfacce. –