【问题标题】:How does "kwargs" is passed to a variable implicitly?“kwargs”如何隐式传递给变量?
【发布时间】:2021-12-23 14:57:18
【问题描述】:

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

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

【问题讨论】:

  • 不要发布代码图片

标签: python torch keyword-argument


【解决方案1】:

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

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

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

【讨论】:

  • 是的,调试后,后面跟着一个使用参数的“init”方法
猜你喜欢
  • 2020-06-30
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 2020-07-12
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多