Дефиниција на интерфејсот на Пајтон

Член од
16 јуни 2022
Мислења
11
Поени од реакции
0
Се прашувам дали можеме да го користиме пакетот за пишување за да дефинираме „интерфејс“, односно класа/објект во Python 3.
Се чини дека најчестата техника за изградба на „интерфејс“ во Python е да се користи апстрактна класа изградена со користење на ABC како аргумент за тип. Меѓутоа, бидејќи Python е динамички напишан, целосно апстрактен тип не е ништо повеќе од навестување за пишување Python. Јас би очекувал споменатиот интерфејс да нема ефект за време на извршувањето. Основната класа може да содржи наследени методи, што не е она што го сакам.
Голем дел од ова се заснова на моето искуство со TypeScript, кое ни овозможува брзо да декларираме типови на објекти користејќи интерфејс или клучниот збор за тип, но тие се користат само од проверувачот на типови.
Дозволете ми да го илустрирам мојот случај на употреба со пример:
Да претпоставиме дека дефинирам функција foo на следниов начин:
Код:
def foo(bar):
    nums = [i for i in range(10)]
    result = bar.oogle(nums)
    return result
Како резултат на тоа, foo е метод кој очекува да прими примерок од објект кој мора да содржи oogle функција која прифаќа листа на броеви. Сакам повикувачите да разберат дека тоа е она што foo го очекува од барот, но барот може да биде од секаков тип.
 
Член од
6 декември 2022
Мислења
960
Поени од реакции
1.455
Основната класа може да содржи наследени методи, што не е она што го сакам.
Затоа постои (барем во Јава, и најверојатно во сите .НЕТ јазици) апстрактна класа на врвот од хиерархијата на наследување. Дали има конкретно во Пајтон апстрактни класи не знам, го немам гибнато Пајтон веќе извесно време а Јава пак уште од поодамна немам дирнато, меѓутоа би можел да пробаш да импровизираш апстрактна класа преку дефинирање на класа без методи од која сите други класи би наследувале и додавале свои методи и атрибути.
TypeScript ти се свиѓа зашто многу работи од корисничкиот интерфејс (копчиња, кутивчиња за текст итн) ги решава browser-от. Па не си оптоварен со рендерирање на копчиња, екрани, дроп листи...
Подготовка на интерфејс кој е и визуелно прифатлив за корисникот и е вистински независен од оперативниот систем под кој работи е прастара цел на многу програмски јазици. Јава најмногу ветуваше во тој поглед. Сепак најдобро решение веќе подолго време е интерфејс заснован на веб-преглед. Локално инсталиран веб сервер преку кој оди поврзувањето до база на податоци... ако тоа ти е целта.
 

Kajgana Shop

На врв Bottom