用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/JohnNuwan/EVA_CORE --skill python-pep572-pep634命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Concevoir et maintenir un watchdog auto-correcteur pour services HTTP — checks de santé, auto-restart, état persistant, rapports et pièges bash.
Serveur de messagerie sécurisé auto-hébergé (Signal-like) avec Flask + WebSocket + AES-256-GCM + pont EVA
ADAM-SENTINEL — Veilleur technologique 24h/24h. Scanne 10 domaines, cree des rapports, met a jour les skills, alerte sur les CVE et breaking changes.
基于 SOC 职业分类
正在显示 SKILL.md
| name | python-pep572-pep634 |
| description | Utiliser l'opérateur Walrus et le Pattern Matching. |
| version | 1.0.0 |
| author | EVA Agent (adapté de obra/superpowers) |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| metadata | {"EVA":{"tags":["python","pep572","pep634","walrus-operator","pattern-matching"],"related_skills":["python-pep8","python-pep257","python-pep20","simplify-code"]}} |
Cette compétence décrit les règles d'utilisation et les bonnes pratiques pour deux fonctionnalités majeures de la syntaxe moderne de Python : l'opérateur d'assignation nommé opérateur Walrus (PEP 572) et le Structural Pattern Matching (PEP 634). Bien utilisées, elles réduisent la duplication de code et améliorent la clarté des embranchements complexes.
L'opérateur Walrus (:=) permet d'assigner une valeur à une variable au sein même d'une expression plus large (comme une condition ou une boucle).
Boucles de lecture de flux : Évite de répéter l'appel de fonction avant et pendant la boucle.
# Recommandé (Walrus)
while (block := file.read(256)) != b"":
process_block(block)
Clauses conditionnelles de filtrage : Récupère une valeur calculée et l'utilise directement dans la condition et son bloc associé.
# Recommandé (Walrus)
if (match := pattern.search(text)) is not None:
return match.group(1)
Compréhensions de listes : Réduit le double calcul d'une fonction coûteuse.
# Recommandé (Walrus)
results = [y for x in data if (y := expensive_computation(x)) > 0]
Introduit en Python 3.10, le pattern matching structurel utilise les mots-clés match et case pour valider et extraire des données selon des motifs structurels spécifiques.
def handle_status(status_code: int) -> str:
match status_code:
case 200 | 201:
return "Succès"
case 400:
return "Requête invalide"
case 404:
return "Non trouvé"
case _: # Cas générique par défaut (wildcard)
return "Erreur inconnue"
Le pattern matching excelle pour valider et extraire des valeurs à partir de dictionnaires ou de tuples :
def process_message(message: dict) -> None:
match message:
# Correspond si 'type' vaut 'alert' et extrait le message sous 'text'
case {"type": "alert", "text": str(body)}:
show_alert(body)
# Correspond si 'type' vaut 'status' et extrait une liste de deux entiers
case {"type": "status", "data": [int(code), int(level)]}:
update_status(code, level)
case _:
raise ValueError("Format de message non reconnu.")
Vous pouvez inspecter les instances de classes et ajouter des conditions dynamiques à l'aide du mot-clé if :
class Point:
def __init__(self, x: float, y: float):
self.x = x
self.y = y
def locate_point(point: Point) -> None:
match point:
case Point(x=0, y=0):
print("À l'origine.")
case Point(x=x, y=y) if x == y:
print(f"Sur la diagonale y = x = {x}.")
case Point(x=x, y=y):
print(f"Point libre à ({x}, {y}).")
case _: si vos cas ne couvrent pas l'intégralité des possibilités, afin d'éviter les comportements imprévus.if/elif.