小编Jos*_*r98的帖子

kwargs 的多重继承

问题

我碰到这个代码就面向对象编程尘埃菲利普斯(简化为简洁起见),我不确定这个定义的特定部分。

class A:
    def __init__(self, a, **kwargs):
        super().__init__(**kwargs)
        self.a = a

class B:
    def __init__(self, b, **kwargs):
        super().__init__(**kwargs)
        self.b = b

class C(A, B):
    def __init__(self, c, **kwargs):
        super().__init__(**kwargs)
        self.c = c
Run Code Online (Sandbox Code Playgroud)

问题

  1. 由于方法解析顺序是(__main__.C, __main__.A, __main__.B, object),可以class B用以下方式定义吗?
class B:
    def __init__(self, b):
        self.b = b
Run Code Online (Sandbox Code Playgroud)
  1. 是不是super().__init__(**kwargs)class B多余的,因为任何多余的kwargs传递C将被传递到object,饲养?

类型错误:object.__init__() 只需要一个参数(要初始化的实例)

  1. 这是 ifC被定义为class C(B, A)而不是的保护措施class C(A, B) …

python oop multiple-inheritance

6
推荐指数
2
解决办法
299
查看次数

Jupyter 链接到部分

我尝试使用以下内容创建指向 jupyter 笔记本中标题的内部链接。关于 SO 的各种答案,例如这里,似乎在我的笔记本中没有按预期工作。下面的代码创建了一个链接,但尝试访问该链接时没有任何反应。

[Link to section](#section)

... Some text ...

## Section
Run Code Online (Sandbox Code Playgroud)

这里 建议的替代方法确实可以按预期工作。

<a href='#section'>Link to section</a>

... Some Text ....

<a id='section'></a>
## Section
Run Code Online (Sandbox Code Playgroud)

第一段代码有错误吗?


更新

在研究了 Waylan 的建议后,我发现了这个 ipython 的例子。只需添加破折号,而不使用小写字母似乎就可以了。

[Link to section](#section)
Run Code Online (Sandbox Code Playgroud)

变成

[Link to section](#Section)
Run Code Online (Sandbox Code Playgroud)

markdown jupyter-notebook

5
推荐指数
1
解决办法
3908
查看次数

使用 scipy.sparse.diags 的 Scipy 三对角矩阵

难以从 numpy 数组生成三对角矩阵。我设法复制了此处给出的结果,但我无法将这些技术应用于我的问题。我也可能误解了scipy.sparse.diag的应用。

对于上下文,我正在研究一个需要生成三对角矩阵以使用有限差分数值求解常微分方程的问题。

from scipy.sparse import diags
import numpy as np

v1 = [3*i**2 +(i/2) for i in range(1, 6)]
v2 = [-(6*i**2 - 1) for i in range(1, 6)]
v3 = [3*i**2 -(i/2) for i in range(1, 6)]

matrix = np.array([v1, v2, v3])
Run Code Online (Sandbox Code Playgroud)

matrix等于。

array([[3.5,   13. ,   28.5,   50. ,   77.5],
       [-5. ,  -23. ,  -53. ,  -95. , -149. ],
       [2.5,   11. ,   25.5,   46. ,   72.5]])
Run Code Online (Sandbox Code Playgroud)

在完成 Scipy 文档和上面链接中的示例之后,我期望以下代码生成 yield Tridiagonal_1 …

python matrix scipy

3
推荐指数
1
解决办法
3025
查看次数

PyTorchweak_script_method装饰器

我在对Word2Vec和PyTorch的介绍中遇到了一些我不太熟悉的代码。我以前从未见过这种类型的代码结构。

>>> import torch
>>> from torch import nn

>>> # an Embedding module containing 10 tensors of size 3
>>> embedding = nn.Embedding(10, 3)
>>> # a batch of 2 samples of 4 indices each
>>> input = torch.LongTensor([[1,2,4,5],[4,3,2,9]])
>>> embedding(input)

tensor([[[-0.0251, -1.6902,  0.7172],
         [-0.6431,  0.0748,  0.6969],
         [ 1.4970,  1.3448, -0.9685],
         [-0.3677, -2.7265, -0.1685]],

        [[ 1.4970,  1.3448, -0.9685],
         [ 0.4362, -0.4004,  0.9400],
         [-0.6431,  0.0748,  0.6969],
         [ 0.9124, -2.3616,  1.1151]]])
Run Code Online (Sandbox Code Playgroud)

我对以下代码行有些困惑。

>>> embedding(input)
Run Code Online (Sandbox Code Playgroud)

过去我可能无意中忽略了这种语法,但是我不记得以前曾经将变量传递给类实例吗?请参阅PyTorch 文档Class Embedding()定义的位置,是否通过装饰器@weak_script_method …

python pytorch

3
推荐指数
1
解决办法
807
查看次数