Location>code7788 >text

Advanced python usage

Popularity:396 ℃/2025-04-04 11:13:16

The following is a summary of advanced Python usages compiled by multiple documents, from syntax sugar to complex feature layered presentation, with key features attached code examples and source references:


1. Grammatical sugar and concise writing method (from simple to traditional)

  1. Variable exchange
    No temporary variable implementation value swap is required:

    a, b = b, a # The traditional way requires temp variables
  2. walrus operator (:=)
    Python 3.8+ allows assignment of values ​​in expressions:

    if (n := len(data)) > 100:
         print(f"Data quantity: {n}bars") # Reduce repeated calculations
  3. F-strings Advanced
    Supports multi-line formats and expressions:

    html = f"""<div>{()}</div>""" # Multi-line string
     print(f"{():%Y-%m-%d}") # Format directive
  4. Dictionary merger and derivation
    Quickly merge dictionary and generate key-value pairs:

    merged = {**d1, **d2} # Merged Dictionary (3.5+)
     squares = {k: v**2 for k, v in zip(keys, values)} # Dictionary derivation
  5. Pattern Matching (3.10+)
    Structured branch processing:

    match:
         case 200: print("Success")
         case 404: print("Not Found")

2. Advanced functional programming

  1. Closure Factory
    Create a function with state:

    def power_factory(exponent):
        def power(base): return base ** exponent
        return power
    square = power_factory(2)
    
  2. Parameterized decorator
    Nested implementation of decorator with parameters:

    def retry(max_attempts):
         def decorator(func):
             def wrapper(*args, **kwargs):
                 for _ in range(max_attempts):
                     try: return func(*args, **kwargs)
                     except: pass
                 raise Exception("Retry exhausted")
             Return wrapper
         Return decorator
  3. Advanced function chain processing
    Map/filter/reduce combination:

    from functools import reduce
    sum_sq = reduce(lambda x,y: x+y, map(lambda n: n**2, range(10)))
    

3. Data structure optimization

  1. Generator lazy calculation
    Save memory when processing large files:

    def read_large_file():
         with open('') as f:
             yield from (() for line in f) # Processing line by line
  2. Named tuples and data classes
    Enhanced data structure readability:

    from collections import namedtuple
    Point = namedtuple('Point', ['x', 'y'])
    
    from dataclasses import dataclass
    @dataclass
    class User:
        name: str
        age: int
    
  3. Two-way queue and sliding window
    Efficient insertion and deletion operation:

    from collections import deque
     dq = deque(maxlen=3) # Fixed length queue

4. Concurrent and asynchronous programming

  1. Thread pool processing
    CPU-intensive tasks parallel:
from  import ThreadPoolExecutor
with ThreadPoolExecutor() as executor:
    results = list((process, data_list))
  1. Coroutines and asynchronous IO
    High concurrent network request processing:
async def fetch(url):
    async with () as session:
        async with (url) as response:
            return await ()
  1. Shared memory acceleration
    Multi-process sharing data:
from multiprocessing import Value
 num = Value('i', 0) # Shared integer variable

5. Metaprogramming and reflection

  1. Dynamic class creation
    Runtime Generate Class:
MyClass = type('MyClass', (Base,), {'attr': 42}) # Dynamically create class
  1. Metaclass control properties
    Use in ORM and other scenarios:
class Meta(type):
    def __new__(cls, name, bases, dct):
        dct['version'] = 1.0
        return super().__new__(cls, name, bases, dct)
  1. Monkey patch
    Modify object behavior at runtime:
import requests
  = lambda: "Mock Data" # Replace method

6. Debugging and performance optimization

  1. Memory analysis tool
    Optimize objects with __slots__:
class Point:
     __slots__ = ('x', 'y') # Reduce memory by 40%
  1. Cache Accelerated Recursion
    lru_cache optimization and repeated calculation:
from functools import lru_cache
@lru_cache(maxsize=128)
def fib(n): return fib(n-1)+fib(n-2) if n>1 else n
  1. Asynchronous debugging skills
    Interactive debugging using breakpoint():
def divide(a, b):
     breakpoint() # Enter pdb debugging
     return a / b

7. Modern Type System (3.5+)

  1. Type prompts and static checks
    Improve code robustness:
def greet(name: str) -> str:
    return f"Hello, {name}"
  1. Generic type support
    Define a common container:
from typing import TypeVar, Generic
T = TypeVar('T')
class Box(Generic[T]):
    def __init__(self, item: T): ...

Best Practice Recommendations

Syntactic sugar selection: Use f-strings instead of % formatting first, use | merge dictionary
Concurrent scenarios: Asyncio for I/O intensive use, and CPU intensive use multi-process
Use metaprogramming with caution: Recommended use of metaclasses for framework development, ordinary business codes avoid over-design
Performance bottleneck: Use memoryview to process binary data, and use a generator to replace the list

For the complete 50 tips, please refer to:Python Magic ManualEfficient Programming GuideAnalysis of new features in Python 3.12


Quote Source
Closure and decorator implementation
Data structure optimization skills
Syntactic sugar practice case
Analysis of the principle of grammatical glycost
Walrus operator description
Advanced function application
Functional programming paradigm
Metaprogramming in-depth analysis
Dynamic Feature Case
Performance optimization strategy
Concurrent processing scheme
Memory management skills
Cache acceleration method
Type system details
Advanced data structures
Data Applications
Debug Tips Guide
Python 3.12 Features
Concurrent programming practice