|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 铁岭小刚fishc 于 2018-5-3 16:30 编辑
- class BB:
- def printBB():
- print('no zuo no die')
- >>> bb =BB()
- >>> bb.printBB()
- Traceback (most recent call last):
- File "<pyshell#3>", line 1, in <module>
- bb.printBB()
- TypeError: printBB() takes 0 positional arguments but 1 was given
复制代码
===================================================
- class BB:
- def printBB(abc):
- print('no zuo no die')
- >>> bb = BB()
- >>> bb.printBB()
- no zuo no die
- >>>
复制代码
以上两段代码 一个 方法中没有参数,一个方法中被我传进去个 abc 做参数可以正常运行,这里第二种方法里面第一个参数不应该是 self 么? 为什么我传 abc 也正常运行呢?
本帖最后由 追自由的风 于 2018-5-3 16:26 编辑
- #
- class BB:
- def printBB(): #类中定义的函数,在不加装饰器的前提下,默认绑定给对象,所以括号内应该有个默认位置参数self(约定的,可以是x,可以是y)
- print('no zuo no die')
- >>> bb =BB()
- >>> bb.printBB() #此处bb被自动传入---但是你在定义函数printB时,规定它是不需要参数的,所以报错
- Traceback (most recent call last):
- File "<pyshell#3>", line 1, in <module>
- bb.printBB()
- TypeError: printBB() takes 0 positional arguments but 1 was given
复制代码
- 我猜不报错的那次,你是这么写的
- class BB:
- def printBB(abc):
- print('no zuo no die')
复制代码
|
|