المهارات python-best-practices
🐍

python-best-practices

آمن

Appliquer les modèles de développement type-first en Python

متاح أيضًا من: 0xBigBoss

Écrire du Python sans définitions de types conduit à des erreurs d'exécution et à du code difficile à maintenir. Cette compétence fournit des modèles éprouvés pour le développement type-first utilisant des dataclasses, des unions discriminées, des Protocols et d'autres fonctionnalités modernes de Python pour rendre les états illégaux non représentables.

يدعم: Claude Codex Code(CC)
⚠️ 68 ضعيف
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "python-best-practices". Créer une dataclass frozen pour un produit avec un nom et un prix requis, description optionnelle

النتيجة المتوقعة:

  • Utiliser @dataclass(frozen=True) pour l'immuabilité
  • Marquer les champs requis sans valeurs par défaut en premier
  • Ajouter les champs optionnels avec des valeurs par défaut après les champs requis
  • Le flag frozen=True prévient la mutation accidentelle
  • L'exemple montre un orden correct des champs et des hints de type

التدقيق الأمني

آمن
v2 • 1/10/2026

Pure documentation skill containing only markdown guidance. No executable code, no file system access, no network calls, and no external command execution. This skill only provides informational content when loaded by an AI agent.

1
الملفات التي تم فحصها
271
الأسطر التي تم تحليلها
0
النتائج
2
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude عرض سجل التدقيق →

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
83
المحتوى
22
المجتمع
100
الأمان
78
الامتثال للمواصفات

ماذا يمكنك بناءه

Concevoir des modèles de données type-safe

Apprendre à utiliser des dataclasses, NewType et des unions discriminées pour encoder les contraintes de domaine au niveau du type.

Revoir les modèles de typage Python

Appliquer des modèles de typage cohérents dans les bases de code en utilisant Protocols, TypedDict et des unions assorties exhaustivement.

Générer du Python idiomatique

Produire du code Python qui suit les modèles de développement type-first modernes lorsque vous travaillez avec Claude, Codex ou Claude Code.

جرّب هذه الموجهات

Créer un modèle de données
Créer une dataclass frozen avec des hints de type corrects pour un profil utilisateur incluant les champs requis et un avatar optionnel. Utiliser les modèles python-best-practices.
Gérer une machine à états
Modéliser une machine à états de requête avec les états idle, loading, success et failure en utilisant des unions discriminées et le pattern matching. Appliquer les modèles python-best-practices.
Ajouter la sécurité de type
Créer des wrappers NewType pour UserId et OrderId pour éviter de les confondre. Moncomment valider l'entrée et créer les types wrappés.
Définir une interface
Définir un Protocol pour un objet de type fichier avec une méthode read, puis montrer comment l'utiliser comme hint de type pour les fonctions qui acceptent n'importe quel objet compatible avec read.

أفضل الممارسات

  • Définir les types avant l'implémentation ; laisser le vérificateur de type guider la complétude
  • Utiliser des dataclasses frozen et des modèles immuables pour prévenir la mutation accidentelle de l'état
  • Valider les données aux limites du système avec des vérifications runtime en plus des hints de type

تجنب

  • Utiliser des arguments mutables par défaut dans les signatures de fonctions
  • Sauter les hints de type pour les types de retour 'évidents'
  • Attraper les exceptions sans les relancer ni ajouter de contexte

الأسئلة المتكررة

Quelles versions de Python supportent ces modèles ?
Le pattern matching nécessite Python 3.10+. Les dataclasses et fonctionnalités de typing fonctionnent sur 3.7+. Utiliser pyright ou mypy pour les projets plus anciens.
Comment cela se compare-t-il à Pydantic ?
Les dataclasses fournissent des types à la compilation. Pydantic ajoute une validation runtime. Utiliser les deux ensemble pour une sécurité maximale.
Puis-je utiliser cela avec FastAPI ou Django ?
Oui. Ces modèles complètent les frameworks web. Définir les modèles avec des dataclasses, les utiliser dans les gestionnaires de routes.
Cette compétence accède-t-elle à mon code ?
Non. C'est une compétence connaissance uniquement. Elle fournit des conseils mais ne peut pas lire, écrire ni exécuter votre code.
Quel vérificateur de type dois-je utiliser ?
pyright offre la meilleure inférence et l'intégration VS Code. mypy a plus de plugins. ty est le plus rapide pour les grandes bases de code.
Quand dois-je utiliser TypedDict vs dataclass ?
Utiliser des dataclasses pour les objets Python internes. Utiliser TypedDict pour les structures externes JSON ou dict correspondantes.

تفاصيل المطور

المؤلف

0xBigBoss

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md