python------创建和使用类常见的问题

1、Python 中的object takes no parameters错误

python 类无法实例化 python为什么运行不了类_新手


是 def init(self,name,score): 中的init前后应该有两个下划线,而我们只写了一个,所以会出错,这是个对初学者来说很容易犯的错误

修改代码,注意修改前后init的颜色变化完整代码如下:

python 类无法实例化 python为什么运行不了类_ython创建和使用类_02

2、程序运行时出现 AttributeError: ‘str’ object has no attribute ‘tittle’ 这样的字样,检查代码

python 类无法实例化 python为什么运行不了类_ython创建和使用类_03

发现在下处出了问题,def没有与上面在同一个类中

python 类无法实例化 python为什么运行不了类_ython创建和使用类_04

检查发现不是这个问题,
但不知道为什么这样的代码倒是运行成功了

python 类无法实例化 python为什么运行不了类_python_05


想想也是都没有用到roll这个方法,肯定能运行成功……对不起,是我打扰了

突然突然我找到了

python 类无法实例化 python为什么运行不了类_python 类无法实例化_06


这里的title拼错了吧……很可以,很新手,很智障

3、出现 IndentationError: expected an indented block

这句话翻译就是需要一个空格
对比原代码,我们可以发现在使用方法(在类中定义函数)后,需要空几格子……定义函数啊!定义函数!你都忘记了吗!

python 类无法实例化 python为什么运行不了类_python 类无法实例化_07

4、注意如果在类中没有输出print那么在下面主函数中要加一个print来输出,例如第21行,但是如果函数中已经有了print那么就直接用22行的方式,即直接调用函数即可。

python 类无法实例化 python为什么运行不了类_python_08

5、某个已经定义过的值,在编译的时候,系统报错: name ‘self’ is not defined

python 类无法实例化 python为什么运行不了类_新手_09


查错发现把print往后移个几个格子,self就没有波浪线了,像这样

python 类无法实例化 python为什么运行不了类_新手_10


然鹅,编译成功是成功了,但并没有得到我们想要的东西:在修改里程数为23后以后能不能打印出来,if句子到底有没有用,根据咱上面的第四条,干脆就把print的语句放在主函数里好了

python 类无法实例化 python为什么运行不了类_python 类无法实例化_11


嗯,也成功编译出来了

修改值为负数看看,毕竟前面定义obometer的初始值为0,

python 类无法实例化 python为什么运行不了类_ython创建和使用类_12

终于终于,智障式调试结束了,代码完美的成功了

突然我又发现类中的read方法不就是干这种事情的吗!!所以我把print挪来挪去干什么!!!

python 类无法实例化 python为什么运行不了类_python_13


下面则是python创建和使用类中的继承和导入类的部分知识点6、下面这串代码包括将父类的属性用方法__init__继承给子类,并给子类定义自己的属性和方法

python 类无法实例化 python为什么运行不了类_python_14

7、在把子属性中与battery有关的属性定义成一个类,并在Elec中直接调用,使得代码简单易读。

python 类无法实例化 python为什么运行不了类_主函数_15


此时出现了如图所示的错误,很容易看出是哪边初夏了拼写的错误,41行中describe改正。

8、在另一个模块中调用类Car

python 类无法实例化 python为什么运行不了类_ython创建和使用类_16