Pyrex Yazma Python Uzatma Modülleri için bir dil olduğunu.
Pyrex özel Python genişletme modülleri yazmak için tasarlanmış bir dildir. O güzel, üst düzey arasındaki boşluğu, kolay kullanımlı dünyayı Python ve C dağınık, düşük seviyeli dünyasını köprü için tasarlanmıştır
Herkes bunun için özel bir dil neden isteyeyim merak ediyor olabilirsiniz. Python, C veya C ++ kullanarak uzatmak gerçekten kolay değil mi? Neden sadece bu dillerden birinde uzantısı modülleri yazmak değil?
Hiç Python için bir uzantısıdır modülü yazdık eğer Eh, işler o kadar kadar kolay olmadığını anlarsınız. Her şeyden önce, hatta yerden almak için önce Demirbaş kod adil biraz yazmak için vardır. Sonra Python ve C veri türleri arasında dönüştürme sorunu ile karşı karşıya ediyoruz. Bu tür sayılar ve bu çok kötü değil dizeleri, ancak daha ayrıntılı bir şey gibi temel türleri için ve referans sayıları muhafaza hataları denetleme hakkında titiz olmasını gerektirir Python dışında Python / C API çağrıları kullanarak nesneler, toplama içine konum bir şey yanlış giderse her adımda ve düzgün temizlik. Herhangi bir hata ve hata ayıklamak çok zor bir kötü çökme var.
Çeşitli araçlar belki SWIG en iyi bilinen olduğu uzatma kodunu üretme yüklerinden bazı kolaylaştırmak için geliştirilmiştir. Yudum Cı kodu ve özel bildirimleri bir karışımından oluşan bir tanım dosyasını alır ve bir uzantı modülüne üretir. Bu sizin için tüm klişe yazar ve birçok durumda Python / C API hakkında bilmeden kullanabilirsiniz. Verilerin herhangi bir önemli yeniden yapılanma Python ve C arasında gerekiyorsa Ama API çağrıları kullanmanız gerekir
Dahası, SWIG tüm yeni yerleşik Python türünü oluşturmak istiyorsanız size hiçbir yardım verir. Bu C veri yapıları saf Python (biraz güvensiz bir şekilde) hangi şal sınıfları işaretçileri üretecektir, ama gerçek uzatma türlerinin yaratılması kapsamı dışındadır.
Daha kolay Python uzatmak için yapım diğer bir kayda değer girişim Perl için benzer bir tesisin esinlenerek, PyInline olduğunu. PyInline bir Python dosyasının ortasında C kod parçalarını embed sağlar ve bunları otomatik olarak ayıklar ve bir uzantısı içine derler. Ama sadece otomatik olarak temel tip dönüştürür ve yudum gibi, yeni Python türlerinin oluşturulmasına yönelik değildir.
Pyrex, bu önceki araçlarından birini sağlayan ötesine uzağa gitmeye hedefliyor. Pyrex gibi kolayca SWIG gibi temel türleri ile fırsatlar, ama aynı zamanda Python / C API hakkında hiçbir şey bilmeden, basit ve doğal bir şekilde, keyfi Python veri yapıları ve keyfi C veri yapıları arasında dönüştürmek için kod yazmak sağlar. Bu doğru - tüm şey! O yorumlanır Python kodu olduğu gibi, perde arkasında, otomatik hepsi halledildi - Ne de referans sayma veya hata denetimi konusunda endişelenmenize gerek yok. Ve dahası, Pyrex Python yeni sınıfları tanımlar gibi yeni yerleşik Python türleri gibi kolayca tanımlamanızı sağlar.
Bu Sürümdeki Yenilikler:
· Minik bugfix distutils modülünü uzantısında bir sekme / uzay sorunu düzeltmek için.
Yazılım detaylar:
Yorum Bulunamadı