在Python函数定义中,参数分为默认参数和非默认参数(也称为位置参数),它们的顺序有严格规定。以下是详细解析:
def func(a):
中的 a
。def func(a=1):
中的 a
。def func(a=1, b)
,调用 func(2)
时,2
应赋给 a
还是 b
?def connect(host, port=80, timeout=10): # host必填,port和timeout可选 print(f"Connecting to {host}:{port} (timeout={timeout})")
2. **API接口**:必填参数(如用户ID)在前,可选参数(如分页大小)在后。
---
### **常见问题与解决**
#### **问题1:SyntaxError(默认参数在前)**
- **错误代码**:
```python
def calc(a=1, b): # 触发SyntaxError
return a + b
*args
和 **kwargs
的顺序若函数包含可变参数,顺序需遵循:
def func(a, b=1, *args, **kwargs): # 非默认 → 默认 → *args → **kwargs
pass
*args
→ **kwargs
。没有搜到相关的文章