PyObjC - PyObjC

PyObjC
Asl muallif (lar)Lele Gaifax
Tuzuvchi (lar)Ronald Osoren, Bill Bumgarner, Stiv Majewski va boshqalar.
Dastlabki chiqarilish1996 yil sentyabr; 24 yil oldin (1996-09)
Barqaror chiqish
5.2 / 3-aprel, 2019-yil; 20 oy oldin (2019-04-03)[1]
Ombor Buni Vikidatada tahrirlash
YozilganPython
Operatsion tizimO'zaro faoliyat platforma
LitsenziyaMIT litsenziyasi
Veb-saytpyobjc.tredoclar.io/ uz/ so'nggi/

PyObjC orasidagi ikki tomonlama ko'prikdir Python va Maqsad-C dasturlash tillari, dasturchilarga mavjud ob'ektiv-C dan foydalanish va kengaytirishga imkon beradi kutubxonalar, kabi olma "s Kakao ramka, Python yordamida.

PyObjC ishlab chiqish uchun ishlatiladi macOS sof Python-dagi dasturlar.

Uchun cheklangan qo'llab-quvvatlash ham mavjud GNUstep, ochiq manba, o'zaro faoliyat platforma amalga oshirish kakao.

Python dasturchilari uchun

PyObjC-ning eng muhim ishlatilishi dasturchilarga yaratishga imkon berishdir GUI sof Python-da kakao kutubxonalaridan foydalanadigan dasturlar.[2] Bundan tashqari, Objective-C ning bilan C dasturlash tili (bu sof superset), ishlab chiquvchilar har qanday C-ga asoslangan dasturni ham o'z ichiga oladilar API tomonidan uni o'rash Objective-C o'rami bilan va keyin PyObjC ko'prigi ustiga o'ralgan kodni ishlating. Foydalanish Ob'ektiv-C ++, xuddi shu narsa bilan amalga oshirilishi mumkin C ++ kutubxonalar.

Objective-C dasturchilari uchun

Kakao ishlab chiqaruvchilari ham foyda ko'rishlari mumkin, chunki Python-da yozilgan vazifalar odatda Objective-C ekvivalentidan kamroq satrlarni oladi. Bu ularning foydasi uchun ishlatilishi mumkin, chunki bu prototipni tezroq yaratishni ta'minlaydi.

Tarix

PyObjC ning kelib chiqishi 1996 yilga kelib, Lele Gaifax o'sha yilning sentyabr oyida asl modulni qurgan.[3] Ishonchli ishtirokchilar orasida Python dasturlash tilini yaratuvchisi Gvido van Rossum ham bor edi.

PyObjC 2002 yilda qayta yozilgan. E'tiborga loyiq qo'shimchalar qatoriga Python-dan Objective-C sinflarini to'g'ridan-to'g'ri subklass qilish imkoniyati va Foundation, App Kit va Address Book ramkalarini deyarli to'liq qo'llab-quvvatlash kiradi.

Xuddi shu yili, Python-ning ramkasiz tuzilmalarini qo'llab-quvvatlash, shuningdek Python-ning keyingi tarqatilishini qo'llab-quvvatlash qo'shildi Mac OS X. Ushbu o'zgarishlar bilan birgalikda mustaqil kakao dasturlari uchun loyiha shablonlari ham ishlatilishi mumkin Loyiha quruvchisi, hozirgi Apple platformasining salafiysi IDE, Xkod.

Apple PyObjC-ni 2007 yilda Mac OS X-ga qo'shib qo'ydi Mac OS X 10.5 Leopard.[4]

Xabarlar va usullar

Objective-C-da ob'ektlar bir-biri bilan xabarlarni yuborish orqali aloqa qilishadi, bu boshqa ob'ektga yo'naltirilgan tillarda usul qo'ng'iroqlariga o'xshashdir. Ob'ekt xabarni qabul qilganda, xabarning nomini yoki selektorini qidiradi va uni xuddi shu selektorga tegishli usul bilan moslashtiradi va keyin uni chaqiradi.

Ushbu xabar iboralari uchun sintaksis Smalltalk-dan meros bo'lib, qabul qiluvchi deb nomlangan, xabar nomi yoki selektorining chap tomonida joylashgan ob'ekt sifatida paydo bo'ladi va ikkalasi ham kvadrat qavs ichida (kvadrat qavs sintaksisida) joylashgan. Smalltalk-dan meros qilib olinmagan). Selektor ichidagi ikki nuqta har bir yo'g'on ichak uchun bittadan yoki bir nechta argumentlarni qabul qilishini bildiradi. Kodni o'qilishini yaxshilash uchun mo'ljallangan sonlar qatoriga kerakli argumentlar mavjud bo'lganda, ifodaning maqsadi aniq bo'ladi:

   [myLittleDuck biroz shovqin qiling:quack ko'zlar yopiq:@HA OnOneFoot:@HA];

Bu Python-da va boshqa ko'plab tillarda ishlatiladigan sintaksisdan farq qiladi, bu erda unga teng keladigan ibora o'qiladi:

    myLittleDuck.makeSomeNoise_eyesClosed_onOneFoot_(quack, To'g'ri, To'g'ri)

Objective-C selektorlarini Python usuli nomlariga tarjima qilish har bir yo'g'on ichakni bitta pastki chiziq bilan almashtirish va yuqoridagi ko'rsatilgandek argumentlarni oxirida qavs ichida yozish orqali amalga oshiriladi.

Sinflar

Objective-C sinflari oddiy Python klassi singari subklassga ajratiladi:

sinf MyDuck(NSObject):                   # NSObject - bu asosiy ob'ektiv-C sinfidir.    def init(o'zini o'zi):        o'zini o'zi = super(MyDuck, o'zini o'zi).init() # Ob'ektiv-C iborasi, unda                                          # subclass instansiyasi, o'zini o'zi yaratadi                                          # superklass yuborish orqali                                          # belgilangan boshlovchi.        qaytish o'zini o'zimyLittleDuckOne = MyDuck.ajratmoq().init()

Shuningdek qarang

Adabiyotlar

  1. ^ "pyobjc". Python to'plami indeksi. Olingan 2019-04-21.
  2. ^ "PyObjC kirish". Olingan 2018-08-05.
  3. ^ "PyObjC HISTORIC.txt". 2002-10-12. Olingan 2017-09-29.
  4. ^ "PyObjC downloads.rst". Olingan 2017-09-29.

Tashqi havolalar