Python Jumpstart by Building 10 Apps Transcripts
Chapter: App 9: Real Estate Analysis App
Lecture: Concept: Python 3 AND Python 2
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Let's take a moment and look at this core concept of one mechanism for supporting both Python 2 and Python 3.
0:07
You saw in our previous example that we wanted to use the statistics module to compute the mean, now I realize there are many ways to compute the mean,
0:15
we don't need to fall back on this, it's a pretty simple mechanism but the idea is there is some module or some feature
0:21
in a later version of Python that wasn't supported in a prior one. So this is not even about Python 2 versus Python 3,
0:29
this is like Python 3.4 versus previous versions, ok, so the statistics module is imported in Python 3.4.3
0:38
if we run this code on anything earlier than that, it's going to fail, it's going to say there is no module statistics, right,
0:45
if we have it it's a super easy way to compute the mean of a set of numbers, you can see below, we've got a bunch of numbers, static.mean numbers boom,
0:53
out comes the average. But it fails on a lot of the versions of Python. So what do we do?
0:59
One way we can solve this problem is we can use a try and just an empty except, there are possible problems you can expose yourself to here,
1:05
but in this simple case it definitely works well. So, we can say it look, let's try to import the statistics module,
1:11
if it doesn't work it's going to throw an exception and we could actually catch the right type of exception,
1:17
we'll get into exceptions later in the next app, but it's easy enough for us to go and write the statistics to stand_in.py
1:25
and we define a mean method and it takes the same parameters as the real one and the implementation you saw in the previous example write it,
1:32
it was quite easy. So the way we solve our problem and we get sort of code that runs on all the versions of Python is
1:39
we try to import the statistics on new versions that just works and uses the best new module for that if it doesn't work
1:45
it's going to fail fall into the except block and we are going to use this specific type of import say we are going to import statistics to stand_in
1:54
and we are going to actually give it the name statistics for this particular file and since it's a mean method,
1:59
the statistics.mean it works exactly as we would expect. Boom, now our code works on all the versions of Python, just like that.