Μετάβαση στο κύριο περιεχόμενο
🔒 Λειτουργία προεπισκόπησης. Τα πρώτα δεκαπέντε μαθήματα Foundations είναι δωρεάν· αυτό είναι Pro. Ξεκινήστε ένα 7ήμερο trial για να ξεκλειδώσετε τον επεξεργαστή, τις υποδείξεις AI και το υπόλοιπο του προγράμματος. Απαιτείται κάρτα, ακυρώνετε οποιαδήποτε στιγμή από το Dashboard.Ξεκινήστε 7ήμερο trial →
← ΜαθήματαSenior Deep-DivesModule 10 · Production idioms (modern Python)TypedDict + NotRequired — JSON shapes as typespredict148 / 161
+150 XP
Εργασία
📝 **Εργασία:** Προβλέψτε την έξοδο 7 γραμμών. Ένα User TypedDict έχει 2 απαιτούμενα κλειδιά (email, όνομα) και 2 κλειδιά Not Required (ηλικία, διεύθυνση). Κατασκευάστε έναν χρήστη με μόνο τα απαιτούμενα, έναν με όλα τα κλειδιά. Στη συνέχεια, απορρίψτε τα __required_keys__ και __optional_keys__ ταξινομημένα (τα παγωμένα σύνολα δεν έχουν ντετερμινιστική σειρά επανάληψης, επομένως ταξινομήστε για προβλεψιμότητα). 📋 Υλοποιήστε την παραπάνω λειτουργία. Οι δοκιμές εκτελούνται αυτόματα. 💡 **Υπόδειξη:** Ξαναδιάβασε τη θεωρία αν κολλήσεις.
Πρόβλεψε έξοδο

Διάβασε τον κώδικα προσεκτικά

from typing import TypedDict, NotRequired


class Address(TypedDict):
    street: str
    city: str


class User(TypedDict):
    email: str
    name: str
    age: NotRequired[int]
    address: NotRequired[Address]


# Required keys only
u1: User = {"email": "a@b.com", "name": "Ada"}
print(u1)
print(type(u1).__name__)
print(sorted(u1.keys()))

# All keys including NotRequired
u2: User = {
    "email": "b@c.com",
    "name": "Bob",
    "age": 30,
    "address": {"street": "1st", "city": "NYC"},
}
print(u2["address"]["city"])
print(u2.get("age", 0))

# Reflection on the TypedDict itself
print(sorted(User.__required_keys__))
print(sorted(User.__optional_keys__))

Τι θα εμφανίσει το πρόγραμμα; Γράψε εδώ:

💬 Συζήτηση

Γίνε ο πρώτος — κάνε μια ερώτηση ή μοιράσου μια συμβουλή.
Σύνδεση για να συμμετάσχεις στη συζήτηση. Η ανάγνωση είναι δωρεάν.
Φόρτωση συζήτησης…