\[ [Index](index.md) | [Exercise 1.5](ex1_5.md) | [Exercise 2.1](ex2_1.md) \]

# Exercise 1.6

*Objectives:*

- Defining modules
- Using the import statement

*Files Created:* None

**Note:**
For this exercise involving modules, it is
critically important to make sure you are running Python in a proper
environment.  You may need to check the value of `sys.path` if you 
can't get import statements to work.  Ask for assistance if everything
seems broken.

Before starting this exercise, first restart your Python interpreter session.  If using IDLE, click on
the shell window and look for a menu option "Shell > Restart Shell".   You should get a message like this:

```python
>>> ##################== RESTART ##################==
>>> 
```

If you are using Unix, simply exit Python and restart the interpreter.

## (a) Using the import statement

In previous exercises, you wrote two programs `pcost.py` and
`stock.py`.   Use the `import` statement to load these
programs and use their functionality:

```python
>>> import pcost
44671.15
>>> pcost.portfolio_cost('Data/portfolio2.dat')
19908.75
>>> from stock import Stock
>>> s = Stock('GOOG', 100, 490.10)
>>> s.name
'GOOG'
>>> s.cost()
49010.0
>>>
```

If you can't get the above statements to work, you might have placed
your programs in a funny directory.  Make sure you are running Python
in the same directory as your files or that the directory is included
on `sys.path`.


## (b) Main Module

In your `pcost.py` program, the last statement called a
function and printed out the result.  Modify the program so that this
step only occurs if the program is run as the main program.  Now,
try running the program two ways:

First, run the program as main:

```
bash % python3 pcost.py
44671.25
bash %
```

Next, run the program as a library import.  You should not see any
output.

```python
>>> import pcost
>>>
```

\[ [Solution](soln1_6.md) | [Index](index.md) | [Exercise 1.5](ex1_5.md) | [Exercise 2.1](ex2_1.md) \]

----
`>>>` Advanced Python Mastery  
`...` A course by [dabeaz](https://www.dabeaz.com)  
`...` Copyright 2007-2023  

![](https://i.creativecommons.org/l/by-sa/4.0/88x31.png). This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/)
