鱼C论坛

 找回密码
 立即注册
查看: 1336|回复: 2

[已解决]小甲鱼课后39问题求助

[复制链接]
发表于 2020-3-14 22:20:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> class BB:
        def printBB():
                print("no zuo no die")

               
>>> bb = BB()
>>> bb.printBB()

这个调用出错了,小甲鱼的解释是
答:因为Python 严格要求方法需要有实例才能被调用,这种限制其实就是Python所谓的绑定概念。所以Python会自动把bb对象作为第一个参数传入,所以才会出现TypeError:“需要0个参数,但实际传入了1个参数"。


问题:既然是说的python方法需要有实例才能调用,那么在这个BB类中,我直接BB.printBB(),用类对象来调用这个方法又是没有出错的,但是类对象并不是实例,这个要怎么理解这个问题呢
最佳答案
2020-3-14 23:24:32
本帖最后由 jackz007 于 2020-3-14 23:28 编辑

        给 printBB 方法添加 self 参数就好了。
>>> class BB:
        def printBB(self):
                print("no zuo no die")
>>> bb = BB()
>>> bb . printBB()
no zuo no die
>>> 
        self 是作为类方法必不可少的输入参数,代表对象自身,调用的时候并不用出现。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-14 23:08:15 | 显示全部楼层
BB.printBB() 在调用的时候已经是类的实例化对象了。我觉得可以这样理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 23:24:32 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2020-3-14 23:28 编辑

        给 printBB 方法添加 self 参数就好了。
>>> class BB:
        def printBB(self):
                print("no zuo no die")
>>> bb = BB()
>>> bb . printBB()
no zuo no die
>>> 
        self 是作为类方法必不可少的输入参数,代表对象自身,调用的时候并不用出现。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 19:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表