跳转到内容

函数与异常

def add(a, b):
return a + b

默认参数(Java 要靠重载才能实现)

Section titled “默认参数(Java 要靠重载才能实现)”
def greet(name, greeting="Hi"):
return f"{greeting}, {name}"
greet("Tom") # Hi, Tom
greet("Tom", "Hello") # Hello, Tom
def connect(host, port, timeout):
...
connect(port=8080, host="localhost", timeout=30) # 顺序随便,可读性高

可以当参数传、赋值给变量、塞进列表:

def apply(fn, x):
return fn(x)
double = lambda n: n * 2 # lambda 跟 Java 的差不多
apply(double, 5) # 10

关键字和 Java 不一样:except 不是 catch,finally 一样。

try:
result = 10 / 0
except ZeroDivisionError as e:
print(f"除零了: {e}")
except (ValueError, TypeError): # 一次抓多种
print("值或类型错误")
else:
print("没出错才执行") # Java 没有这个
finally:
print("一定执行")
def set_age(age):
if age < 0:
raise ValueError("年龄不能为负") # 用 raise,不是 throw
JavaPython
trytry
catchexcept
finallyfinally
throwraise
throws(方法签名)无,Python 不强制声明
  • [[02-数据结构]] —— 返回多值用 tuple
  • [[04-面向对象]] —— 方法本质也是函数
  • [[01-基础语法与变量类型]]