Bazı fonkiyonları C ile yazsam bu fonksiyonları python satırlarından çağırma imkanım olur mu?
https://www.csestack.org/calling-c-functions-from-python/
Alıntı yapılan: z - 14 Mayıs 2020, 05:14:29Bazı fonkiyonları C ile yazsam bu fonksiyonları python satırlarından çağırma imkanım olur mu?
Yapmadım nasıl yapidiginida bilmiyorum. Ama örnekleri var, bazı hızlı çalışması istenilen fonksiyonlar c ile yazılıp cagrilabiliyor. Numpy modülünün kendi yazdığımız modülden hızlı çalışmasının sebebi bu.
Alıntı yapılan: z - 14 Mayıs 2020, 05:14:29Bazı fonkiyonları C ile yazsam bu fonksiyonları python satırlarından çağırma imkanım olur mu?
Evet.
Ilginc olan Python'u icat eden arkadas ozellikle c/c++ ile "cok kolay"likla beraber calismasini tasarim kriteri olarak en bastan uyguladi.
Bkz SWIG
SWIG Master Class (http://www.dabeaz.com/SwigMaster/)
Bunun nasil yapildigini bilmiyorum ama var. Python daki birçok fonksiyon C ile yazılmıştır. Ve çok kolay olduğunu okumuştum.
https://www.csestack.org/calling-c-functions-from-python/
Bu linkteki adimlarla cok kolayca C fonksiyonunu python'dan cagirdim.
Bu cok cok iyi oldu cunku python ile yazdigim programin calisma hizina deli olmaya baslamistim.
PyQT5 ve Python ile user interface kismi C ile de asil program yazilirsa sanirim tum dertlerim bitecek.
Pythonda
a,b,c,d,e,f = myfunc() seklinde fonksiyon cagirip bir suru deger geri donderebiliyoruz.
C de boyle bir sansimiz yok mecburen adres geri donderecegiz.
Pythonda boyle cok deger dondurmek istedigimiz C fonksiyonunu cagirdigimizda geri donus degeri adresden verileri nasil okuyacagiz?
Alıntı yapılan: z - 14 Mayıs 2020, 14:16:29Pythonda
a,b,c,d,e,f = myfunc() seklinde fonksiyon cagirip bir suru deger geri donderebiliyoruz.
C de boyle bir sansimiz yok mecburen adres geri donderecegiz.
Pythonda boyle cok deger dondurmek istedigimiz C fonksiyonunu cagirdigimizda geri donus degeri adresden verileri nasil okuyacagiz?
Arguments (http://www.swig.org/Doc1.3/Arguments.html)
multiple return value tanimlanabilir. Referans verdigim basligi bastan sona okuman gerekecek. 9.1.3
C programını ve python programını haberleştirmek için IPC-Inter Process Communication- yapmak gerekiyor. En temel seviyede işletim sistemi üzerinde socket açıp, C ve python üzerinden haberleşmek gerekiyor.
Diğer yandan redis, zeromq gibi yapıları da kullanabilirsiniz.