请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

2回答

首先明确一点:在一个变量后面加上“()“, 就是要调用这个对象的__call__方法, 不过我们一般把作用于类上的这个符号叫做实例化, 一个类调用了这个符号以后返回的是对象!!!注意一下,对象和类虽然都可以比较作对象,但是类这个对象是有__call__方法的,但是这个类一旦实例化产生的新对象就没有这个方法了。类一定是可以实例化的,也就是如果一个变量是类 那么就可以在这个变量后面加括号,如果一个变量是对象,那抱歉了, 你不能进行实例化了


第一张图: animal=cat() , 这个时候animal是一个对象,所以不能在后面加括号了,但是你这里面并没有对animal进行实例化, 也就没有就行animal() ,所以当然不会报错

第二张图: 和第一张图一样。animal这个时候已经是实例了,这个时候再在后面加括号(实例化) 所以一定会报错

第三张图:你把Cat赋值给animal,这个时候animal是类。因为你没有对cat进行实例化,因为类可以实例化 所以这个时候你进行animal()和直接调用cat()是一样的效果 ,所以不会报错

1 回复 有任何疑惑可以回复我~
  • 提问者 yupanpan714 #1
    非常感谢!谢谢老师孜孜不倦的回答我的问题
    回复 有任何疑惑可以回复我~ 2019-07-29 16:23:34
  • bobby 回复 提问者 yupanpan714 #2
    能帮助大家学懂也是录制课程的目的,加油
    回复 有任何疑惑可以回复我~ 2019-07-30 15:08:24
老中医学编程 2019-07-27 08:31:46

第一个加括号是正常类(对象)的实例化,第三个不加括号相当于给这个类取了另外一个名字,第二个出错是因为程序找不到animal()这个类或者函数

0 回复 有任何疑惑可以回复我~
  • 提问者 yupanpan714 #1
    cat()赋给animal为啥animal不用加括号?
    回复 有任何疑惑可以回复我~ 2019-07-27 08:51:01
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信