您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

类方法生成“ TypeError:…为关键字参数获得了多个值……”

类方法生成“ TypeError:…为关键字参数获得了多个值……”

问题在于,传递给python中类方法的第一个参数始终是在其上调用方法类实例的副本,通常标记self。如果这样声明了该类:

class foo(object):
  def foodo(self, thing=None, thong='not underwear'):
    print thing if thing else "nothing" 
    print 'a thong is',thong

它的行为符合预期。

如果不self作为第一个参数,则在myfoo.foodo(thing="something")执行时,将foodo使用arguments调用方法(myfoo, thing="something")myfoo然后将该实例分配给thing(因为thing是第一个声明的参数),但是python也会尝试分配"something"thing,因此是Exception。

为了演示,请尝试使用原始代码运行它:

myfoo.foodo("something")
print
print myfoo

您将输出如下:

<__main__.foo object at 0x321c290>
a thong is something

<__main__.foo object at 0x321c290>

您可以看到已为“事物”分配了对类“ foo”的实例“ myfoo”的引用。文档的此部分说明了函数参数的工作原理。

其他 2022/1/1 18:35:34 有420人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶