"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__
。这实际上是初始化对象(而不是创建它)。它需要对参数做一些事情,而且很可能会做。
来自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__
。这实际上是初始化对象(而不是创建它)。它需要对参数做一些事情,而且很可能会做。