代码规范
必要的注释(尤其是基于某数学公式,否则将很难看懂)
def bern(theta, N, k): return np.clip(comb(N, k)*theta**k*(1-theta)**(N-k), 0, 1)
def bern(theta, N, k): """Bernoulli likelihood with N trials and k successes.""" return np.clip(comb(N, k)*theta**k*(1-theta)**(N-k), 0, 1)
加了注释之后,物理意义立马明晰;
变量及函数的命名
def make_thetas(xmin, xmax, n): xs = np.linspace(xmin, xmax, n) widths = (xs[1:]-xs[:-1])/2 thetas = xs[:-1]+widths return thetas