PyObjC - PyObjC

PyObjC
Původní autoři Lele Gaifax
Vývojáři Ronald Oussoren, Bill Bumgarner, Steve Majewski a kol.
První vydání Září 1996 ; Před 24 lety ( 1996-09 )
Stabilní uvolnění
5.2 / 3. dubna 2019 ; Před 17 měsíci ( 03.04.2019 )
Úložiště Upravte to na Wikidata
Napsáno Krajta
Operační systém Cross-platform
Licence Licence MIT
webová stránka pyobjc .readthedocs .io / en / nejnovější /

PyObjC je obousměrný most mezi programovacími jazyky Python a Objective-C , který umožňuje programátorům používat a rozšiřovat existující knihovny Objective-C , jako je kakaový rámec Apple , pomocí Pythonu.

PyObjC se používá k vývoji aplikací pro macOS v čistém Pythonu.

K dispozici je také omezená podpora GNUstep , což je open source implementace Cocoa mezi platformami .

Pro programátory v Pythonu

Nejdůležitějším využitím PyObjC je umožnit programátorům vytvářet aplikace GUI pomocí kakaových knihoven v čistém Pythonu. Navíc, jako důsledek úzkého vztahu Objective-C s programovacím jazykem C (je to čistá nadmnožina), jsou vývojáři také schopni začlenit jakékoli API založené na C tím, že jej zabalí wrapperem Objective-C a poté použijí zabalený kód přes most PyObjC. Pomocí Objective-C ++ lze totéž provést s knihovnami C ++ .

Pro programátory Objective-C

Výhodou mohou být i vývojáři kakaa, protože úkoly napsané v Pythonu obecně zabírají méně řádků než ekvivalent Objective-C. To lze využít ve svůj prospěch, protože to umožňuje rychlejší prototypování.

Dějiny

Počátky PyObjC sahají do roku 1996, kdy Lele Gaifax postavila původní modul v září téhož roku. Mezi připsanými přispěvateli byl Guido van Rossum, tvůrce programovacího jazyka Python.

PyObjC byl přepsán v roce 2002. Pozoruhodné přírůstky zahrnují schopnost přímo podtřídit třídy Objective-C z Pythonu a téměř úplnou podporu frameworků Foundation, App Kit a Address Book.

Později téhož roku byla přidána podpora pro non-rámce Python staví, stejně jako následnou podporu distribuce Python součástí Mac OS X . Spolu s těmito změnami přišly šablony projektu pro samostatné kakaové aplikace pro použití s Project Builder , předchůdcem aktuální IDE platformy Apple , Xcode .

Apple začlenil PyObjC do Mac OS X v roce 2007, s vydáním Mac OS X 10.5 Leopard .

Zprávy a metody

V Objective-C objekty vzájemně komunikují zasíláním zpráv, což je analogické volání metod v jiných objektově orientovaných jazycích. Když objekt přijme zprávu, vyhledá název zprávy nebo selektor a porovná ji s metodou označenou jako stejný selektor, kterou poté vyvolá.

Syntaxe těchto výrazů zpráv se dědí z Smalltalku a jeví se jako objekt zvaný příjemce, umístěný nalevo od názvu zprávy nebo selektoru, a oba jsou uzavřeny v dvojici hranatých závorek (syntaxe hranatých závorek není zděděno z Smalltalk). Dvojtečky v selektoru označují, že přijímá jeden nebo více argumentů, jeden pro každý dvojtečku. Za účelem zlepšení čitelnosti kódu jsou dvojtečky umístěny uvnitř selektoru, takže když jsou na místě požadované argumenty, záměr výrazu je jednoznačný:

   [myLittleDuck makeSomeNoise:quack eyesClosed:@YES onOneFoot:@YES];

To se liší od syntaxe používané v Pythonu a v mnoha dalších jazycích, kde by ekvivalentní výraz zněl:

    myLittleDuck.makeSomeNoise_eyesClosed_onOneFoot_(quack, True, True)

Přeložení selektorů Objective-C na názvy metod Pythonu je dosaženo nahrazením každého dvojtečky jediným podtržítkem a vypsáním argumentů v dvojici závorek na konci, jak je ukázáno výše.

Třídy

Třídy Objective-C jsou podtřídy stejným způsobem jako normální třída Pythonu:

class MyDuck(NSObject):                   # NSObject is a base Objective-C class.
    def init(self):
        self = super(MyDuck, self).init() # An Objective-C idiom, wherein the
                                          # subclass instance, self, is instantiated
                                          # by sending the superclass its
                                          # designated initializer.
        return self

myLittleDuckOne = MyDuck.alloc().init()

Viz také

Reference

externí odkazy