Error:

  今天写一段简单类定义python代码所遇到报错问题:TypeError: drive() takes 2 positional arguments but 3 were given

代码如下

  

class Car:
speed = 0
def drive(self,distance):
time = distance / self.speed
print(time) bike = Car()
bike.speed=60
bike.drive(60,80)

后经排查,才发现是类定义中 def drive(selef,distance) 方法中self参数得问题

现在让我们简单了解一下Python中self的基础信息:

self,表示创建的类实例本身,方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。在创建实例的时候,就不能传入空的参数了,必须传入与方法匹配的参数,但self不需要传,Python解释器会自己把实例变量传进去。

所以有两种解决方法

方法一:只传一个参数,如果你想传两个参数,那就看方法二

class Car:
speed = 0
def drive(self,distance):
time = distance / self.speed
print(time) bike = Car()
bike.speed=60
bike.drive(80)

方法二:

class Car:
speed = 0
def drive(self,distance,speed):
time = distance / speed
print(time)
bike = Car()
bike.drive(80,50)

  

Python基础-TypeError:takes 2 positional arguments but 3 were given的更多相关文章

  1. python:TypeError: main() takes 0 positional arguments but 1 was given

    TypeError: main() takes 0 positional arguments but 1 was given def main(self): 括号里加上self就好了

  2. Python-类-函数参数-takes 0 positional arguments but 1 was given

    在学习Python基础的时候,在创建某一个shownametest()函数,解析器会报错 TypeError: shownametest() takes 0 positional arguments ...

  3. TypeError: Dense_net() takes 0 positional arguments but 1 was given

    书写孪生网络的时候出现的错误,调用单通道时出现如下错误. 看了别人写的博客大概和类内的初始化还有self之类的有关系,没有弄清楚.将单通道的文件在函数外声明,在函数内统一调用可以解决这个问题

  4. python : takes 0 positional arguments but 1 was given

    def 的要加self, https://blog.csdn.net/u010269790/article/details/78834410

  5. takes 3 positional arguments but 4 were given错误

    之前写程序经常会碰到此类问题,确认发现并没有少参数.后来恍然大悟:函数为类下函数,定义时需要添加self参数. 但是!但是!为何Python给self赋值而你不必给self赋值? 创建了一个类MyCl ...

  6. xadmin+django2.0删除用户报错,get_deleted_objects() takes 3 positional arguments but 5 were given

    解决方法:将xadmin/plugins/actions.py中的 if django_version > (2, 0): #deletable_objects, model_count, pe ...

  7. flask函数已定义参数却出现takes 0 positional arguments but 1 was given的问题

    在flask中定义了一个简单的删除数据库内容的路由 测试却发现一直报错 说delete_history函数定义时没有接受参数,但是检查delete_history函数却发现没有问题 后来想了半天才发现 ...

  8. 【Python】**kwargs和takes 1 positional argument but 2 were given

    Python的函数定义中可以在参数里添加**kwargs——简单来说目的是允许添加不定参数名称的参数,并作为字典传递参数.但前提是——你必须提供参数名. 例如下述情况: class C(): def ...

  9. python基础——函数的参数

    python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...

随机推荐

  1. [UE4]结构体

    只有数据变量属性,没有函数和事件

  2. WebApi中关于base64和jwt的联合验证

    用到了如鹏的代码 jwt验证 public class MyAuthoFilterPostOrgInfoAttribute: AuthorizationFilterAttribute { public ...

  3. 【 MAKEFILE 编程基础之三】详解 MAKEFILE 变量的定义规则使用!

    本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/gcc-makefile/770.html   ...

  4. 安装MySQL_Python时出现is not a supported wheel on this platform.

    MySQL-Python 数据库驱动安装 pip install mysql_python失败 不支持windows操作系统 解决: 自行下载安装 下载网站 http://www.lfd.uci.ed ...

  5. Servlet(API)生命周期

    一.最上层接口Servlet 查看Servlet接口源码: 有5个方法 访问过程(默认): 1.进行Servlet类加载 当Tomcat容器启动后,服务器寻找应用部署的描述文件(web.xml),从部 ...

  6. OOP学习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. sbt 以及 IDEA sbt 插件安装配置教程(转)

    1. 在Windows中安装sbt 下载 官网: http://www.scala-sbt.org/ github: https://github.com/sbt/sbt/releases/downl ...

  8. supervisor管理hive metastore和hive server2进程

    1. hive_metastore.ini [program:hive_metastore] environment = JAVA_HOME=/usr/java/jdk1..0_172-amd64,H ...

  9. DateTimepicker中的星期问题

    开发机:win10 64+VS2013 客户机:win7 32bit 在项目中使用DateTimepicker,需要将时间获取到,然后转换为string,然后再转换为DateTime类型.开发机器上测 ...

  10. 用VirtualBox快速安装虚拟机virtual Machine(Win7+IE10)

    前端测试,经常需要各种环境, 用“Virtual Box + OVA文件”安装虚拟机, 是简单高效的一种方法,可以安装各种window和IE的版本.下面以IE10 + Win7为例说明. 1) 下载和 ...