Changes

Jump to: navigation, search

OPS435 Python3 Lab 7

165 bytes removed, 16:08, 3 December 2019
Reference
[[Category:rchan]][[Category:OPS435-Python]]
<font color='red'><b>'''Please note that the CheckLab7.py script is currently under review and will be updated. It will be available on Tuesday, November 5, 2019'''</b></font>
=OBJECTIVES=
:: A class is a type, a description of a thing, the definition of what it should look like (data attributes) and what we can do about it (function attributes).
:: An object is an instance of a class, an individual entity described by a class, a specific stuff with properties (aka attributes) defined by a class.
:: Type The exact definition of the type and what you would expect to store in objects of that type is up to you - the programmer. You would want to design your classes so that you can manage data in your program/script/application as easily as possible.
:: A few points about the mechanics of implementing classes:
:::* A class name typically starts with a capital letter, and object names should start with a lowercase letter.
==Reference==
:* Time object code : from '''Think Python''' by Allen B. Downey: [http://greenteapress.com/thinkpython2/html/thinkpython2017.html Chapter 16] and [http://greenteapress.com/thinkpython2/html/thinkpython2018.html Chapter 17]:* Date Data object : [https://docs.python.org/3/reference/datamodel.html#special-method-names special method name]
=Investigation I: Objects and Functions=
self_sec = self.time_to_sec()
t2_sec = t2.time_to_sec()
sum = sec_to_time(sec1 self_sec + sec2t2_sec)
return sum
time_seconds = self.time_to_sec()
nt = sec_to_time(time_seconds + seconds)
timeself.hour, timeself.minute, timeself.second = nt.hour, nt.minute, nt.second
return None
:3. Please study the output of the interactive shell session above and note that in order to call the format_time() function, we have to prefix it with the class name '''Time''' as it is under the class definition in lab7d.py. Also note that format_time() is now a method of the time object '''t1'''.
:4. You may also notice that when we called the print() function with our time object t1, the print function only showed that it is an Time object and its memory location, but did not display its properties (i.e. data attributes) like the values of its hour, minute, and second attributes.
:5. Try to find out how to test the valid_datevalid_time(), change_time() functions to make sure they all work.
:6. Download the checking script and check your work. Enter the following commands from the bash shell.<source lang="bash">
cd ~/ops435/lab7/
def __str__(self):
'''return a string representation for the object self'''
return '%.2d:%.2d:%.2d' % (self.hour, self.minute, self.second)
</source>
:1. Make a copy of lab7d.py and name it as lab7e.py. Add the function definition for __str__() after the __init__() function in lab7e.py. Make sure that the '''def __str__(self):''' line has the same indentation level as the __init__() function.
<lab7e.Time object at 0x7f830b498be0>
>>> print(t1)
09.:50.:00
>>> t1.format_time()
'09:50:00'
def __repr__(self):
'''return a string representation for the object self'''
return '%.2d.%.2d.%.2d' % (self.hour, self.minute, self.second)
</source>
:6. Add the function definition for __repr__() after the __str__() function in lab7e.py. Please note that we use the '.' instead of ':' in the formatting string. Make sure that the '''def __repr__(self):''' line has the same indentation level as the __init__() function.
1,760
edits

Navigation menu