1. Podstawy, import. **********************************************************

% cat mymod.py
def countLines(name):
    file = open(name, 'r')
    return len(file.readlines())

def countChars(name):
    return len(open(name, 'r').read())

def test(name):                               # albo przekazuje obiekt pliku
    return countLines(name), countChars(name) # albo zwraca sownik

% python
>>> import mymod
>>> mymod.test('mymod.py')
(10, 291)


% cat mymod2.py
def countLines(file):
    file.seek(0)                 # powrt do pocztku pliku
    return len(file.readlines())

def countChars(file):
    file.seek(0)                 # ditto (przewija, jeli jest to konieczne)
    return len(file.read())
def test(name):
    file = open(name, 'r')       # przekazanie obiektu plikowego
    return countLines(file), countChars(file)     # tylko raz plik otwarty

>>> import mymod2
>>> mymod2.test("mymod2.py")
(11, 392)


2. from/from*. ****************************************************************

% python
>>> from mymod import *
>>> countChars("mymod.py")
291


3. __main__. ******************************************************************

% cat mymod.py
def countLines(name):
    file = open(name, 'r')
    return len(file.readlines())

def countChars(name):
    return len(open(name, 'r').read())

def test(name):                               # albo przekazuje obiekt pliku
    return countLines(name), countChars(name) # albo zwraca sownik

if __name__ == '__main__':
    print test('mymod.py')

% python mymod.py
(13, 346)


4. Zagniedone importy. ******************************************************

% cat myclient.py
from mymod import countLines
from mymod import countChars
print countLines('mymod.py'), countChars('mymod.py')

% python myclient.py
13 346

% cat mod1.py
somename = 42

% cat collector.py
from mod1 import *                 # zbiera tutaj wiele nazw
from mod2 import *                 # od przypisa do my names
from mod3 import *

>>> from collector import somename


5. Ponowne adowanie. *********************************************************

# zobacz plik z przykadami z rozdziau

 
6. Importy cykliczne. *********************************************************

# zobacz plik z przykadami z rozdziau
