 |
BOOK: Python Projects
 | This is the forum to discuss the Wrox book Python Projects Laura Cassell, Alan Gauld; ISBN: 978-1-118-90866-2 |
Welcome to the p2p.wrox.com Forums.
You are currently viewing the BOOK: Python Projects section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
|
|
|

August 4th, 2015, 04:40 PM
|
Registered User
|
|
Join Date: Aug 2015
Posts: 13
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
P304, Appendix A, Answer 7
I believe
Code:
class RotatingCounter:
def __init__(self, start = 0)
should read:
Code:
class RotatingCounter:
def __init__(self, start = 0):
And should:
read?
Code:
if 0 < current_value < 9:
|

August 4th, 2015, 06:00 PM
|
Wrox Author
|
|
Join Date: Feb 2015
Posts: 25
Thanks: 0
Thanked 3 Times in 3 Posts
|
|
Quote:
Originally Posted by jc.
I believe
Code:
class RotatingCounter:
def __init__(self, start = 0)
should read:
Code:
class RotatingCounter:
def __init__(self, start = 0):
|
Quite right. We should have had you as a proof reader!
Quote:
Originally Posted by jc.
And should:
read?
Code:
if 0 < current_value < 9:
|
But not for this one, although there is a slight error in the text. Where it says "the latter returns the current count and then sets the count back to zero" it should say sets the count to value if value is valid and otherwise leaves it as-is. (the default behaviour is of course to set it to zero.) So the code is what I intended but the description is inadequate.
Thanks again for highlighting it. I'm trying to get these things onto the book's errata page.
Alan G.
|

August 5th, 2015, 03:48 AM
|
Registered User
|
|
Join Date: Aug 2015
Posts: 13
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Cheers Alan.
[warning: I suspect I'm way off base here]
So calling reset() with a 'value' is optional, right? If it's not provided, zero is used, yes?
A value is provided, but not valid
I don't see how the default value is then used to reset self.counter, as we just (in the else block) raise an exception and return the current value of self.counter, don't we?
No value is provided, and zero is used
Doesn't the if block fail, as zero is not less than zero, so self.counter is not set to zero?
Value is provided, and is valid
Assuming the code does work as intended (likely given my understanding), why return the old value of self.counter (held in current_value), why not just return self.counter in both situations (and dispense with using current_value)?
Thanks for your patience!
|

August 5th, 2015, 05:33 AM
|
Wrox Author
|
|
Join Date: Feb 2015
Posts: 25
Thanks: 0
Thanked 3 Times in 3 Posts
|
|
Groan! I obviously had a bad day at the office with this one.
Yes value is optional, if not given the default zero should be used.
You are also right that the test for value should be
if 0<= value <=9:
Finally the reason to return the old value is mainly an arbitrary
choice, but its a practical one. Since reset() now allows you to
set the counter at any value you choose(within the range) in
practice you may want to remember the old value, change the
counter temporarily, then later go back to how it was. You could
do that in multiple steps but having reset give you the old value
for free saves a step. If you didn't need the old value you just
ignore it!As i say it was an arbitrary decision intended to make
the users life slightly easier And you should always try to design
a class (or a program for that matter) from the users perspective..
One thing to remember with the Appendix answers is that they
are *example* solutions. Any answer that meets the spec as given
is correct. In this case i tried to be a bit (too?) clever and provide
some added value (the original spec didn't say anything about setting
the value, it just said reset to zero...)
And another thing that will be obvious by now is that the sample
answers didn't get tested as thoroughly as the code in the main
text. That was probably a mistake....!
|

August 5th, 2015, 06:13 AM
|
Registered User
|
|
Join Date: Aug 2015
Posts: 13
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Ahh. Thank you.
re: user perspective / examples only. Good advice / yes, of course.
Much appreciated.
|
Similar Threads
|
Thread |
Thread Starter |
Forum |
Replies |
Last Post |
P304, Appendix A, Answer 3 |
jc. |
BOOK: Python Projects |
5 |
August 5th, 2015 03:52 AM |
Where is Appendix A? |
RKevinBurton |
Book: Professional Microsoft SQL Server Analysis Services 2008 with MDX: 978-0-470-24798-3 |
1 |
September 12th, 2010 10:47 AM |
A New Appendix B |
DanM |
BOOK: Beginning ASP.NET 2.0 BOOK VB ISBN: 978-0-7645-8850-1; C# ISBN: 978-0-470-04258-8 |
12 |
August 14th, 2010 04:53 AM |
Chapter 9 - Validating user Imput (p304) |
SouthendSupporter |
BOOK: Beginning ASP.NET 3.5 : in C# and VB BOOK ISBN: 978-0-470-18759-3 |
2 |
March 9th, 2010 05:24 AM |
|
 |
|