On 8/9/21 3:07 PM, Hope Rouselle wrote:
I'm looking for questions to put on a test for students who never had
any experience with programming, but have learned to use Python's
procedures, default arguments, if-else, strings, tuples, lists and
dictionaries.  (There's no OOP at all in this course.  Students don't
even write ls.append(...).  They write list.append(ls, ...)).

Nitpickery... there *is* OOP in the course, they just don't know it.

Long long ago (over 20 yrs now) I developed a Python course for a commercial training provider, and in it I claimed one of the great things about Python was it supported all kinds of object oriented programming techniques, but you could also use it without doing anything object oriented. If I wrote a course now, I'd never make that claim, because everything you do in Python is pretty much object oriented.

>>> x = list()
>>> type(x)
<class 'list'>
>>> dir(x)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', ' __lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

list is a class and it has methods... it's "object-oriented"!


Even if you do

x = 2 + 3

you're actually creating an integer object with a value of 2, and calling its add method to add the integer object with the value of 3 to it. The syntax hides it, but in a way it's just convenience that it does so...

>>> 2 + 3
5
>>> x = 2
>>> x.__add__(3)
5


sorry for nitpicking :) But... don't be afraid of letting them know it's OOP, and it''s not huge and complex and scary!





--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to