Python 文档中的潜规则是什么?

What are the hidden rules in Python documents?

我需要学习 Python 来进行一些数据操作。当我阅读这些文件时,那里的文件写得非常好,以至于我对一些隐藏的信息感到非常沮丧。例如:

  1. 官方Python文档: random.sample(population, k)

    什么是人口?是什么类型的?从下面看,好像是一个列表?那么,它是函数接收的唯一有效类型吗?

  2. 在Numpy官方文档中: numpy.random.random_sample

    题目是numpy.random.random_sample(size=None),后面一段说的是

    size: int or tuple of ints, optional

    Output shape. If the given shape is, e.g., (m, n, k), then m * n * k samples are drawn.

    这是什么意思?那么,实际上有 2 个参数,第一个是大小,第二个是形状,它是可选的?那么如果我要传入2个参数,应该写random.random_sample(5,[m,n,k])还是random.random_sample(5, m, n k)

这些文档非常简短,作者似乎很不好意思演示库的用法。似乎他们总是试图向我们隐瞒一些事情。我想知道我是否应该学习一些 Python 习俗来理解所有这些魔法?

  1. 被抽样的人口类型大致是"iterable"。我假设底层实现是做水库采样,这只需要数据可以通过一次。如果你愿意,你可以传入一个元组。

  2. 大小参数可以是整数或符合文档的 "shape"(三元组)。形状的三个组成部分将相乘得到大小。因此,该函数只接受一个参数。

Python 不是静态类型,因此特定参数 "must" 没有固定类型,被调用函数可以自由地以不同方式处理不同的输入。

您链接的 numpy 文档页面上有两个调用函数的示例。

  1. 我没有发现使用简单循环和调用随机数生成器有什么问题。可能有一个库函数,但这只会使两行简单的代码和一行代码有所不同。没什么大不了的。

查阅文档中的教程,这些是您在进一步操作之前必须清楚的基本内容。

Q1。熟悉 鸭子打字。它是 python、ruby 等动态类型语言的核心内容之一。只要它嘎嘎叫,它就是一只鸭子。所以这里的参数可以是任意序列或者set.

Q2。只要接收函数能搞定就可以了。所以如果你传递 int 它可以处理它,它也可以处理 tuple。所以就语义而言,这很棒。