MrFaws Docs
Lær Python

Mellemtrin

Moduler, virtuelle miljøer, filer, JSON, OOP, typing og tests.

Virtuelt miljø og pakker

python -m venv .venv

Windows:

.venv\Scripts\activate
python -m pip install requests

Linux:

source .venv/bin/activate
python -m pip install requests

Et virtuelt miljø isolerer projektets dependencies fra resten af systemet.

Moduler

prices.py:

TAX_RATE = 0.25

def with_tax(price: float) -> float:
    return price * (1 + TAX_RATE)

main.py:

from prices import with_tax

print(with_tax(100))

Filer og JSON

from pathlib import Path
import json

path = Path("users.json")
users = [{"name": "Alex", "balance": 500}]

path.write_text(json.dumps(users, indent=2), encoding="utf-8")
loaded = json.loads(path.read_text(encoding="utf-8"))

Brug pathlib i stedet for at sammensætte stier manuelt med slash-tegn.

Klasser og dataclasses

from dataclasses import dataclass

@dataclass
class Account:
    owner: str
    balance: int = 0

    def deposit(self, amount: int) -> None:
        if amount <= 0:
            raise ValueError("Beløbet skal være positivt")
        self.balance += amount

Brug klasser, når data og adfærd naturligt hører sammen. Brug almindelige funktioner og dictionaries, når de er enklere.

Typing

def find_user(user_id: int, users: dict[int, str]) -> str | None:
    return users.get(user_id)

Type hints kontrolleres ikke automatisk ved runtime, men hjælper editor, type checker og læseren.

Tests

def add(a: int, b: int) -> int:
    return a + b

def test_add() -> None:
    assert add(2, 3) == 5

Kør med pytest:

python -m pip install pytest
pytest

Test normal adfærd, grænsetilfælde og forventede fejl.

Næste projekt

Gennemgå PixelVault-koden. Find CLI-entrypoint, encoder, decoder, formatdefinition og tests, og tegn dataflowet fra inputfil til PNG og tilbage.

On this page