"kwargs" 如何隐式传递给变量?

How does "kwargs" is passed to a variable implicitly?

来自pytorch教程的简单代码,用于加载数据 ''' tr_data = datasets.FashionMNIST(root="data", train=True, download=True, transform=ToTensor()) '''

但是,当调试成如上图的代码。它使用“新”方法而不传递“kwds”。似乎从未使用过参数“transform=ToTensor()”,结果是不正确的。所以我想知道代码是如何处理参数的,否则kwds是被读入变量的。

它正在检查超类的 __new__ 方法是否与 object 的方法相同。这可以通过两种方式发生:超类是 object,或者超类没有覆盖 __new__ 并且没有任何 it 超类回到 object.

object 在其构造函数中不接受任何参数,因此在这种情况下它不会传递它们。由于 object 不接受任何参数,它也不需要任何参数,因此超类调用正确地创建了对象。

调用__new__后,调用__init__。这实际上是初始化对象(而不是创建它)。它需要对参数做一些事情,而且很可能会做。