栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

没有参数的类方法会产生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
,因此不会自动传递。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/662363.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号