Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
One problem with learning something new is that, if it is abstract, like calculus, for example, it is hard to justify caring about it. When was the last time you used the math you learned in high school at the grocery store? In our previous examples, we showed you how to create functions as an alternative to executing shell commands one after another in a script. We also told you that a module is really just a script, or some lines of code in a file. It isn’t anything tricky, but it does need to be arranged in a particular way so that it can be reused in another future program. Here is the point where we show you why you should care. Let’s import the previous system information scripts in both Bash and Python and execute.
Open the IPython and Bash windows if you closed them so that we can demonstrate very quickly why functions are important for code reuse. One of the first scripts we created in Python was a sequence of commands in a file named pysysinfo.py. In Python because a file is a module and vice versa, we can import this script file into IPython. Keep in mind that you never need to specify the .py portion of the file you are importing. In fact if you do this, the import will not work. Here is what it looks like when we do that on Noah’s Macbook Pro laptop:
In [1]: import pysysinfo Gathering system information with uname command: Darwin Macintosh-8.local 9.2.2 Darwin Kernel Version 9.2.2: / Tue Mar 4 21:17:34 PST 2008; root:xnu-1228.4.31~1/RELEASE_I386 i386 Gathering diskspace information df command: Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 93Gi 88Gi 4.2Gi 96% / devfs 110Ki 110Ki 0Bi 100% /dev fdesc 1.0Ki 1.0Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home /dev/disk1s2 298Gi 105Gi 193Gi 36% /Volumes/Backup /dev/disk2s3 466Gi 240Gi 225Gi 52% /Volumes/EditingDrive