python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python3 takes 1 positional argument but 2 were given

解决python3报错之takes 1 positional argument but 2 were given问题

作者:沛哥儿

这篇文章主要介绍了解决python3报错之takes 1 positional argument but 2 were given问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python3 takes 1 positional argument but 2 were given

使用python3的时候,刚开始使用,把所有的都写在了一个文件中,这不符合类的六大设计原则。

就把原来的代码按照类进行了拆分。

关于类的六大设计原则:

这里不作过多的解释,大家可以自行百度。

拆分完之后,使用main方法进行实例调用的时候,发现一直报错

takes 1 positional argument but 2 were given

代码合到一个文件又是好的,这逗我了这是!

看代码,确实又只定义了一个参数。

后来从网上找了个示例下来对比,发现调用类文件的def中,别人比我的代码中多了个参数self。

上网查了查,网上说,类的方法与普通的函数只有一个特别的区别

简单来说就是,第一个参数是对象本身,这个是必须的。

在类方法加上第一个参数self。再启动调试。OK了。

python3报错:ModuleNotFoundError: No module named ‘MySQLdb‘

安装MySQLdb报错

1. 报错内容

在运行脚本时,报错没有MySQLdb 包,Python3 又无法直接安装MySQLdb包;

在安装 pip install MySQLdb 时,会出现报错,报错内容如下:

    import MySQLdb
ModuleNotFoundError: No module named 'MySQLdb'

2. 报错原因

python3中,没有MySQLdb 这个包,所以无法直接安装;

3. 解决办法

若使用的是Python3 ,需要安装pymysql ,安装完成后,在引入包时

使用

import pymysql as MySQLdb

这样就可以像Python2 一样使用该包了!!!

pip 安装:

包导入:

问题解决!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文