Modèles d'utilisation pratique
Catégories courantes de fonctions utilitaires
graph TD
A[Types de fonctions utilitaires] --> B[Manipulation de données]
A --> C[Validation]
A --> D[Transformation]
A --> E[Interaction avec le système]
Utilitaires de manipulation de données
def filter_positive_numbers(numbers: list) -> list:
"""
Filter out positive numbers from a list.
Args:
numbers: Input list of numbers
Returns:
List of positive numbers
"""
return [num for num in numbers if num > 0]
## Example usage
data = [-1, 2, -3, 4, 0, 5]
positive_nums = filter_positive_numbers(data)
print(positive_nums) ## Output: [2, 4, 5]
Utilitaires de nettoyage de données
def clean_string_data(text: str) -> str:
"""
Clean and normalize string data.
Args:
text: Input string
Returns:
Cleaned and normalized string
"""
return text.strip().lower()
## Example usage
raw_input = " Python Programming "
cleaned_input = clean_string_data(raw_input)
print(cleaned_input) ## Output: "python programming"
Utilitaires de validation
Modèles de validation d'entrée
Type de validation |
Description |
Exemple |
Vérification de type |
Vérifier les types d'entrée |
isinstance(value, int) |
Validation de plage |
Vérifier les plages de valeurs |
0 <= value <= 100 |
Validation de format |
Valider les formats de chaînes de caractères |
re.match(pattern, string) |
def validate_email(email: str) -> bool:
"""
Validate email address format.
Args:
email: Email address to validate
Returns:
Boolean indicating valid email format
"""
import re
pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
return re.match(pattern, email) is not None
## Example usage
print(validate_email('[email protected]')) ## True
print(validate_email('invalid_email')) ## False
Conversion de type de données
def safe_convert(value: str, convert_type: type, default=None):
"""
Safely convert values between types.
Args:
value: Value to convert
convert_type: Target type
default: Fallback value if conversion fails
Returns:
Converted value or default
"""
try:
return convert_type(value)
except (ValueError, TypeError):
return default
## Example usage
print(safe_convert('42', int)) ## 42
print(safe_convert('3.14', float)) ## 3.14
print(safe_convert('abc', int, 0)) ## 0
Utilitaires d'interaction avec le système
Gestion des fichiers et des chemins
import os
def ensure_directory(path: str) -> bool:
"""
Ensure a directory exists, creating if necessary.
Args:
path: Directory path
Returns:
Boolean indicating directory existence
"""
try:
os.makedirs(path, exist_ok=True)
return True
except OSError:
return False
## Example usage
result = ensure_directory('/tmp/my_project')
print(result) ## True if directory created or exists
Techniques avancées de composition
Composition fonctionnelle
def compose(*functions):
"""
Create a function composition utility.
Args:
functions: Functions to compose
Returns:
Composed function
"""
def inner(arg):
result = arg
for func in reversed(functions):
result = func(result)
return result
return inner
## Example usage
def double(x): return x * 2
def increment(x): return x + 1
composed_func = compose(double, increment)
print(composed_func(5)) ## Output: 12
Bonnes pratiques
- Gardez les utilitaires modulaires et axés sur une seule tâche
- Utilisez des indices de type et des docstrings
- Gérez les erreurs potentielles
- Écrivez des tests unitaires pour les utilitaires
LabEx recommande de pratiquer ces modèles pour créer des fonctions utilitaires robustes et réutilisables en Python.