Ahoj, prijde mi, ze kvuli testu isinstance() na konkretni typ jsi prisel o duck-typing. Podle mne to neni nutne a slo by dosahnout pres abstraktni bazove tridy (se zachovanim duck-typingu). Tedy test na typ by overolva abstraktniho predka pomoci if not isinstance(val, virtual_ancestor).
Virtualni predek by se zadefinoval takhle:
import abc
class virtual_ancestor(metaclass=abc.ABCMeta):
pass
A kazdy kdo by chtel mit tridu ktera dedi od toho virtualniho predka (tedy ekvivalent k registrovani constraintu) by se zaregistroval pomoci virtual_ancestor.register(my_type).
Jmenuju se Petr Blahoš. Programuju něco přes 20 let. Tady se snažím psát hlavně o Pythonu, webovém frameworku Pyramid, a občas i o něčem úplně jiném.
Přečteno 19 309×
Přečteno 11 880×
Přečteno 9 408×
Přečteno 8 866×
Přečteno 8 651×