Someone can probably better explain how setattr(object) and setattr(object()) work in regards to `self` as a bound positional parameter? Also, @classmethod and @staticmethod.
On Tuesday, August 14, 2018, Wes Turner <wes.tur...@gmail.com> wrote: > You can probably do sorting, inheritance, and interfaces at the same time? > > An ISortable object must have a .sort() method. e.g. > DoublyLinkedList(LinkedList). > > "15 Sorting Algorithms in 6 Minutes" > https://youtu.be/kPRA0W1kECg > - # of comparisons > - # of array accesses > > ... Big-O Cheat Sheet > http://bigocheatsheet.com > - "Array Sorting Algorithms" > - Time Complexity: Best, Average, Worst > - Space Complexity: Worst > > > I don't have K12 students. > > It's important to learn OOP. There really is a push back from > OOP-over-abstraction to functional with interfaces by convention with e.g. > Go,. As a multi-paradigm language built on C (not C++ (OOP which predates > Java)), programs can be written in many styles with Python. > > There is - some might argue negligible - overhead to each function call. > Is there a good way to do compile-time interface checking with Python? Why > not? > > zope.interface is probably the most popular way to do 'actual' interfaces > in Python. > https://zopeinterface.readthedocs.io/en/latest/ > > Pyramid framework has zope.interface interfaces. > https://github.com/Pylons/pyramid/blob/master/pyramid/interfaces.py > - IResponse > - IRequest (a 'marker' interface) > > An OOP exercise: > > # Namespacing > def area_of_a_rectangle() > def perimeter_of_a_rectangle() > def shape__rectangle__area() > def shape__square__area() > > # Inheritance, Interfaces, Parameters > class Shape() > def __init__(*args, **kwargs): # * > def area() > def perimeter() > def height/width/[depth]() > # physical units > # class Number(float): > # def __init__(value, unit=) > class Square() > class Rectangle() > class Triangle() > > > Sorting, [multiple] database indexes (import sqlite), and tree-balancing > may be appropriate to teach or mention together or in an optimal sequence. > > - https://github.com/jwasham/coding-interview-university/ > blob/master/README.md#sorting > - https://github.com/jwasham/coding-interview-university/ > blob/master/README.md#object-oriented-programming > - https://github.com/jwasham/coding-interview-university/ > blob/master/README.md#design-patterns > - https://en.wikipedia.org/wiki/Software_design_pattern > - OOP > > sorted() is implemented with/as a Timsort (and expects an interface (is it > __cmp__, __gt__, __lt__, AND __eq__?)). > > https://wiki.python.org/moin/TimeComplexity > > On Tuesday, August 14, 2018, Jurgis Pralgauskis < > jurgis.pralgaus...@gmail.com> wrote: > >> Hi, >> >> The dillema I have when teaching: >> our k12 curricullum of programming is more based on algorithms (math >> ideas), >> but when working as programmer, I see the bigger need of SW architecture >> knowledge.. >> >> OOP is one big topic, which could replace sorting alg stuff (that I >> never applied (directly) in this century...). The topics could be >> integrated in making mini game engine :) >> >> I'd still leave classics of sum, min search, and search in sorted vs non >> array to get the idea of algorithms. >> >> What are your approaches, if you have programming classes in K12? >> -- >> Jurgis Pralgauskis >> tel: 8-616 77613 >> >
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig