python------创建和使用类常见的问题
1、Python 中的object takes no parameters错误
是 def init(self,name,score): 中的init前后应该有两个下划线,而我们只写了一个,所以会出错,这是个对初学者来说很容易犯的错误
修改代码,注意修改前后init的颜色变化
完整代码如下:
2、程序运行时出现 AttributeError: ‘str’ object has no attribute ‘tittle’ 这样的字样,检查代码
发现在下处出了问题,def没有与上面在同一个类中
检查发现不是这个问题,
但不知道为什么这样的代码倒是运行成功了
想想也是都没有用到roll这个方法,肯定能运行成功……对不起,是我打扰了
突然突然我找到了
这里的title拼错了吧……很可以,很新手,很智障
3、出现 IndentationError: expected an indented block
这句话翻译就是需要一个空格
对比原代码,我们可以发现在使用方法(在类中定义函数)后,需要空几格子……定义函数啊!定义函数!你都忘记了吗!
4、注意如果在类中没有输出print那么在下面主函数中要加一个print来输出,例如第21行,但是如果函数中已经有了print那么就直接用22行的方式,即直接调用函数即可。
5、某个已经定义过的值,在编译的时候,系统报错: name ‘self’ is not defined
查错发现把print往后移个几个格子,self就没有波浪线了,像这样
然鹅,编译成功是成功了,但并没有得到我们想要的东西:在修改里程数为23后以后能不能打印出来,if句子到底有没有用,根据咱上面的第四条,干脆就把print的语句放在主函数里好了
嗯,也成功编译出来了
修改值为负数看看,毕竟前面定义obometer的初始值为0,
终于终于,智障式调试结束了,代码完美的成功了
突然我又发现类中的read方法不就是干这种事情的吗!!所以我把print挪来挪去干什么!!!
下面则是python创建和使用类中的继承和导入类的部分知识点
6、下面这串代码包括将父类的属性用方法__init__继承给子类,并给子类定义自己的属性和方法
7、在把子属性中与battery有关的属性定义成一个类,并在Elec中直接调用,使得代码简单易读。
此时出现了如图所示的错误,很容易看出是哪边初夏了拼写的错误,41行中describe改正。
8、在另一个模块中调用类Car