在进行程序编写过程中,出现了一个报错:missing 1 required positional argument: 'self',一看这个报错信息就懵逼了,我所调用的函数没有哪个是需要self的参数的啊!
最后发现,是自己编写程序时太急,在调用某个类里面的方法之前,没有对类进行实例化,见下图错误示例:
result = Test.func1()
如果按照上面的代码运行,就会出现题目所示的报错。
只需将类实例化即可:
result = Test().func1()
写代码在快速敲键盘的同时,一定要仔细!!!!!!!!!!一定要仔细!!!!!!!!!!!!!!一定要仔细!!!!!!!!!!
GodLordGee温馨提示您:
程序千万条,仔细第一条
编程不规范,调试两行泪
1.
类
和实例不同,
类
定义函数时默认有一个参数是
self
,
self
指的是实例本身,在调用
类
的函数时,没有实例化,就会提示要传
self
,实例化后
self
代表实例本身,就不需要传参,只需要传正常参数即可。2.
self
是使用惯例,也可以用其他值代替,一般用
self
。调用
类
的函数时,没有先对
类
进行实例化,直接调用,就会
报错
。先对
类
进行实例化,再调用实例的函数。
由问题
Missing
1
required
position
al
argument
引出的关于
python
实例化的经验教训,及实例化的具体步骤
最近在刷leetcode,想把写出的算法输出个结果验证一下,于是乎遇到了这个坑,以前自己写代码都是赶着写,或者百度个框架改改,从来没在意过
类
似的细节,因此立贴于此,要改正这一缺点,学透这门语言为己所用,谨以此贴引以为戒!
class Solution:...
TypeError: findF()
missing
1
required
position
al
argument
: ‘
self
’
定义在自定义
类
中的方法需要一个默认的
self
参数。错误提示没有
self
就是说明这个
类
的对象没有创建成功
可以看到,方法price中没添加
self
,可以直接调用;而方法brand中有参数
self
,但是调用的时候又没有参数,所以
报错
。
解决方案(1):去掉方法中的
self
解决方法(2):使用
类
的对象进行调用
解释:car是
类
;car()是
类
的对象
调用方法时,不用
1.第19行实例化了Url_appNo的方法,第25行调用了Url_appNo方法的test_url()函数,这种调用方式是错误的。优化第25行代码,在Url_appNo后,加一个()就行。
Python
调用
类
的函数时
报错
如下:
TypeError: seperate_data()
missing
1
required
position
al
argument
:'
self
'
报错
原因:
train_data, test_data = DataCleaner.seperate_data()
DataCleaner 是个
类
,seperate_data() 是其中的方法,不能直...
二、问题分析
TestMethod是自定义的
类
,test_01_getAuth为该
类
的实例化方法(
self
:表示实例化
类
后的地址ID),
类
未实例化直接调用TestMethod.test_01_getAuth(),导致
报错
三、解决方案
1.自定义
类
加括号,直接调用方法
if __name__ == '__main_
2.
报错
原因
从
报错
代码能够看出,我这里涉及了两个
类
,我用A
类
和B
类
来进行描述。
A
类
:一个方法
类
,其中
报错
的 get_element() 就是这个
类
下的一个方法。在该
类
我没有实例化
B
类
:在 get_element() 中调用了A的 get_element() 方法。只在开头 from A import A.
因为A
类
没有实例化,B
类
我也没有进行实例化,只是直接引入了这个
类
。...
TypeError: check()
missing
1
required
position
al
argument
: ‘
self
’
TypeError:check()缺少1个必需的位置参数:“
self
”
出现原因:
1.没有实例化
类
直接引用
问题解决参考:https://stackoverflow.com/questions/54315359/typeerror-check-
missing
-1-...