• @[email protected]
    link
    fedilink
    English
    7
    edit-2
    2 days ago

    Because to a certain extent Python is duck typed. Python has no concept of interfaces, unless you count the abc module combined with manual isinstance() checks, which I’ve never seen anyone do in production. In order to be passed to some function that expects a “file-like object”, it just has to have methods named read(), seek(), and possibly isatty(). The Python philosophy, at least as I see it, is “as long as it has methods named walk() and quack(), it’s close enough to a duck for me to treat it as one”.

    Duck typing is distinct from weak type systems, though.

    • @FooBarrington
      link
      22 days ago

      Python has Interfaces in the form of protocols, but those are explicitly duck-typed