> For the complete documentation index, see [llms.txt](https://shsteindorsson.gitbook.io/med-verk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shsteindorsson.gitbook.io/med-verk/forritseiningar.md).

# Forritseiningar

### Hvernig flytjum við inn forritseiningar?

Þrjár leiðir:

* Til að flytja inn heila forritseiningu:
  * `import <forritseining>`
* Til að flytja inn hlut úr forritseiningu:
  * `from <forritseining> import <hlutur>`
* Til að flytja inn allt úr forritseiningu sem staka hluti:
  * `from <forritseining> import *`

Fyrsta leiðin af þessum þremur sem taldar eru upp er sú sem þykir öruggust. Það er vegna þess að með henni eru minnstar líkur á að við flytjum inn hluti úr ólíkum forritseiningum sem heita sama nafni. Það veit ekki á gott ef Python reynir til dæmis að kalla á tvö föll í einu, úr sitt hvorri forritseiningunni, sem heita það sama.\
Þegar við flytjum inn forritseiningu með `import`-setningu þurfum við alltaf að tilgreina hana þegar við notum föll úr henni. Tökum sem dæmi forritseininguna `random` sem inniheldur meðal annars fallið `randint()`. Fallið `randint()` tekur tvö inntaksgildi (heiltölur) og skilar heiltölu af handahófi sem liggur á bili inntaksgildanna. Til að nota fallið `randint()` þurfum við að tilgreina hvaðan það kemur:

```python
>>> import random
>>> x = random.randint(1,100)
>>> print(x)
30
```

Þegar við flytjum inn hluti með `from <forritseining> import` setningu, þá erum við ekki að flytja inn alla forritseininguna heldur einungis þann hluta sem við þurfum. Skoðum annað dæmi þar sem við flytjum aftir inn `randint()` en án þess að flytja inn alla `random`-forritseininguna:

```python
>>> from random import randint
>>> y = randint(1,100)
>>> print(y)
98
```

Síðasta dæmið virkar að mörgu leyti eins og venjuleg `import`-setning að því leyti að við flytjum inn alla forritseininguna. Munurinn liggur hins vegar í því að við erum að flytja alla hluti hennar inn eins og þeir væru stakir. Því er rétt að taka fram að þessi aðferð þykir mjög óæskileg nema að um minniháttar tilraun sé að ræða.

```python
>>> from random import *
>>> z = randint(1,100)
>>> print(z)
69
```

#### Flutt inn undir öðru nafni

Við getum flutt forritseiningar inn undir öðru nafni með því að nota lykilorðið `as`:

```python
import random as r

x = r.randint(1,100)
```

Þessi aðferð getur sparað okkur talsverða ritun, sérstaklega ef nafn forritseiningarinnar er langt og/eða það er notað oft í sama forriti.
