使用python3的时候,刚开始使用,把所有的都写在了一个文件中,这不符合类的六大设计原则。就把原来的代码按照类进行了拆分。

关于类的六大设计原则:开放关闭原则,里氏替换原则,依赖倒转原则,接口隔离原则,迪米特原则。这里不作过多的解释,大家可以自行百度。

拆分完之后,使用main方法进行实例调用的时候,发现一直报错“ takes 1 positional argument but 2 were given ”。

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

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

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

上网查了查,网上说,类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。

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

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

python3报错: takes 1 positional argument but 2 were given 问题解决。相关推荐

  1. TypeError: __init__() takes 1 positional argument but 4 were given

    执行如下代码的时候报错: import torch import torch.nn as nn N,D_in,H,D_out=64,1000,100,10 x=torch.randn(N,D_in) ...

  2. TypeError: __init__() takes 1 positional argument but 2 were given

    在网上阅读了大量的博文.基本上都是因为没有实例化对象而导致的错误.如果没有实例化对象,或者压根就不知道自己有没有实例化对象的小伙伴们可以点击以下博文: Pytorch报错TypeError : ini ...

  3. takes 1 positional argument but 2 were given

    错误代码: # 测试方法的动态性 class Person:def work(self):print('!!!!')def play_game(s):print(s,' like games.') p ...

  4. __init__() takes 1 positional argument but 5 positional arguments (and 1 keyword-only argument) were

    百度翻译:__init__()接受1个位置参数,但使用了5个位置参数(和1个仅限关键字的参数) 问题:将python文件打包成bat文件,运行bat文件报错:__init__() takes 1 po ...

  5. TypeError: __init__() takes 1 positional argument but 5 were given

    解决问题:TypeError: init() takes 1 positional argument but 5 were given 笔者在初学用python连接MySQL数据库时,遇到了报错,后来 ...

  6. 问题TypeError: __init__() takes 1 positional argument but 2 were given解决方案

    问题TypeError: __init__() takes 1 positional argument but 2 were given解决方案 参考文章: (1)问题TypeError: __ini ...

  7. Keil退出Debug调试报错encountered an impoper argument

    在使用Keil的Debug功能时,退出时会报错encountered an impoper argument,并且之后Keil卡住无响应,退出不了Debug,无法操作,只能通过任务管理器退出. 原因一 ...

  8. Please change the shape of y to (n_samples,), for example using ravel().python3报错问题解决

    A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_sample ...

  9. python3 translate---TypeError: translate() takes exactly one argument (2 given)

    TypeError: translate() takes exactly one argument (2 given) 使用translate()函数删除指定字符,报错内容为函数内只需要一个参数,但提 ...

最新文章

  1. 什么是三层架构?简单的介绍三层架构!
  2. ArcGIS鼠标滚轮方向之ArcMap篇
  3. Oracle获取月初/月末/季初/季末/半年初/半年末/年初/年末
  4. Educational Codeforces Round 42 (Rated for Div. 2)
  5. oracle诊断日志,oracle日常诊断语句
  6. 小明利用计算机软件绘制函数,2019年人大附中初二下期末模拟数学试题
  7. 这行的压力还是比较大的
  8. CSS实现输入框的高亮效果-------Day50
  9. Vmware View Client登陆后无法使用键盘输入
  10. 【图像加密】基于matlab GUI混沌系统灰色图像加密解密(带面板)【含Matlab源码 1240期】
  11. MySQL二进制日志(binlog)总结
  12. Qt学习之路_008-最全的Qt学习总结(前期)
  13. 【从零开始学架构-李运华】03|架构设计的目的
  14. 图像处理(8) : 模板匹配
  15. Unable to start ServletWebServerApplicationContext due to missing ServletWeb解决办法
  16. Gossip in Cassandra
  17. ZK指纹考勤机Java接口
  18. Radio Userland已更新,版本号未更改...
  19. linux下scala脚本运行报错error: expected class or object definition 解决方案
  20. 烽火狼烟丨Fastjson反序列化漏洞风险提示

热门文章

  1. 第21节 ACL——控制路由器上接口大门的进出规则
  2. 在wps里面怎么设置触发器_wps如何制作触发器
  3. 整合rocketmq/stream-rocketmq启动报错channel.AbstractMessageChannel问题
  4. python3 简单爬虫实战|使用selenium来模拟浏览器抓取选股宝网站信息里面的股票
  5. 物联网示范项目优秀案例集
  6. 阿里巴巴集团去IOE运动的思考与总结
  7. 【B站SXT的Java课程中的错误】054 嵌套循环_循环相关练习
  8. Vue3.0笔记(B站天禹老师)
  9. 解压软件Bandizip
  10. 怎么更改Visual Studio项目名字