没有参数的类方法会产生TypeError

没有参数的类方法会产生TypeError,第1张

没有参数的类方法会产生TypeError

您将方法称为

self.test()
。您应该在思维上进行翻译,以
test(self)
了解如何在函数的定义中“接收”该调用
test
但是
deftest()
,您对的定义很简单,它没有放置的
self
余地,因此您得到了观察到的错误。

为什么会这样呢?因为Python只能在明确指定要查看的对象时查找属性(并且查找属性包括方法调用)。因此,为了使该方法执行依赖于调用它的对象的任何 *** 作,它需要以某种方式接收该对象。接收它的机制是第一个参数。

使用装饰器可以告诉Python

test
实际上根本不需要。在那种情况下,Python知道该方法不需要,因此它不会尝试将其添加为第一个参数。因此,以下任何一种定义都可以解决您的问题:
self``staticmethod``self``test

def test(self):    print('test')

要么:

@staticmethoddef test():    print('test')

请注意,这仅与在对象上调用的方法有关(总是看起来像

some_object.some_method(...)
)。普通函数调用(看起来像
function(...)
)没有任何“点的左侧”,因此没有
self
,因此不会自动传递。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5668474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存