Python 3/Moduuli

Wikikirjastosta
Siirry navigaatioon Siirry hakuun
1. haetaan
import math


2. käytetään
print (math.sqrt(10)) # 3.16227766017

Tässä haettiin math-moduuli import-komennolla. Math-moduuli on tavallinen Python-tiedosto, jossa on luokka nimeltä sqrt, johon luku 10 lähetetään ja josta luku palautuu käsiteltynä. Omia moduuleja voi tehdä ja niillä ohjelma jakautuu useisiin tiedostoihin, ohjelmistoksi. Pythonin peruskirjasto on laaja ja sisältää moduuleja perushommiin.

Oma moduuli[muokkaa | muokkaa wikitekstiä]

tiedosto custom_module.py, jossa on luokka.

class Replacer:
    def __init__(self):
        pass # passataan

    def change(self, string):
        string = string.replace('Hello', 'Good morning')
        return string

Muuttaa merkkijonon "Hello, world" muotoon "Good morning, world!".

Kutsutaan pääohjelmassa[muokkaa | muokkaa wikitekstiä]

1. haetaan

import custom_module # Muista välin tilalle alaviiva!

2. kutsutaan

2.1

print (custom_module.Replacer().change('Hello, world!')) # moduulin_nimi.Luokka().funktio()

2.2

replacer = custom_module.Replacer() # moduulin_nimi.Luokka()
print (Replacer.change('Hello, world!')) # ylla_oleva.funktio()

print-komento on näissä, koska change-funktion palauttama merkkijono halutaan tulostaa.

Moduulin ohjeteksti kirjoitetaan tiedoston alkuun.

"""Hyödyllisiä luokkia ja funktioita.
"""

class Replacer:
    def __init__(self):
        pass # passataan

Muita tapoja hakea moduuli[muokkaa | muokkaa wikitekstiä]

import math as MATH # vaihdetaan nimeä
from math import sqrt # haetaan yksi jäsen
from math import sin, cos # haetaan useita jäseniä
from math import * # haetaan kaikki luokat
from math import sin as SIN # muutetaan haetun funktion nimeä

Absoluuttiset ja suhteelliset polut[muokkaa | muokkaa wikitekstiä]

Projektin moduuleihin voi viitata absoluuttisella tai suhteellisella polulla. Absoluuttisessa viittaustavassa moduuleihin viitataan projektin juurihakemistosta alkaen.

import omapackage.omamooduuli         # omamoduuli on tiedostossa <projektin juuri>/omapackage/omamoduuli.py

Ylimmän tason moduulin edessä voi käyttää yhtä pisteitä viittaamaan ylähakemistoihin. Yksi piste tarkoittaa samaa hakemistoa, kaksi pistettä ylempää hakemistoa, kolme pistettä kahta ylempää hakemistoa ja niin edelleen.

import .omamoduuli         # omamoduuli on tiedostossa ./omamoduuli.py
import ..omamoduuli        # omamoduuli on tiedostossa ../omamoduuli.py
import ...omamoduuli       # omamoduuli on tiedostossa ../../omamoduuli.py

Muuta[muokkaa | muokkaa wikitekstiä]

Moduulin jäsenet voi listata komentotulkissa dir-funktiolla.

>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

Moduulin tai sen jäsenen ohjetekstin saa näkyviin help-funktiolla.

>>> help(math.log)

Tulostaa

Help on built-in function log in module math:

log(...)
    log(x, [base=math.e])
    Return the logarithm of x to the given base.
    
    If the base not specified, returns the natural logarithm (base e) of x.

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]