Python object() takes no parameters
- 前言
- Trouble shooting
- 找到问题
- PyCharm venv Python版本
- 参考文章:
前言
在PyCharm中练习写class的时候遇到“TypeError: object() takes no parameters”的错误。
Trouble shooting
第一反应是,是不是Python版本用的是2.x而不是3.x。
在venv/bin目录下输入python --version
, “果然“是Python 2.7.10。
然后就走入歧途了,开始查找怎么指定Python Interpreter为Python 3.x,但是看来看去PyCharm都已经指向Python 3.x了。
放弃,改用Python 2.7的语法class ClassName(object)
,却还是一样的错。
疯了。
找到问题
搜索CSDN后发现如果把__init__
的方法名写错了,Python会因为找不到__init__
方法也会报这个错误。
- 错误一:左边或右边只写了1个下划线,正确是左右两边都是2个下划线。
- 错误二:把init写了int。
我就是犯了错误二,因为我用的是PyCharm自动完成功能,看到了in开头的方法提示就按回车了。
小结:
__init__
表示初始化构造方法- 下滑线通常表示私有的意思,两个下划线就是强调是Python私有
- 初始化的英文是Initialize,缩写为init
PyCharm venv Python版本
我在前面查Python版本时犯的错:
在 venv/bin目录下应该执行./python --version
而不是python --version
。前者是PyCharm Virtual Env中的Python版本,后者是环境变量PATH中的Python版本。
我的PyCharm中的Python版本其实就是3.x。
参考文章:
- https://blog.csdn.net/lifelegendc/article/details/72382070
还没有评论,来说两句吧...