在学习Python基础的时候,在创建某一个shownametest()函数,解析器会报错 TypeError: shownametest() takes 0 positional arguments but 1 was given 发现,解释就是有一个参数放弃,还是咋地了, 解决方法就是在函数里面加入参数self 下面是测试代码 class testclass(object): #创建一个类 def _init_(self,nm = 'nametest'): print('I am testcl…
TypeError: main() takes 0 positional arguments but 1 was given def main(self): 括号里加上self就好了…
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) 后经排查,才发现是类定义中…
在flask中定义了一个简单的删除数据库内容的路由 测试却发现一直报错 说delete_history函数定义时没有接受参数,但是检查delete_history函数却发现没有问题 后来想了半天才发现delete_history的路由函数名也是delete_history,那么程序就会调用路由函数而不会调用import进来的delete_history函数,从而导致这个问题 将路由函数重命名,测试成功. 千万不要写和路由函数同名的自定义函数啊!…
def 的要加self, https://blog.csdn.net/u010269790/article/details/78834410…
书写孪生网络的时候出现的错误,调用单通道时出现如下错误. 看了别人写的博客大概和类内的初始化还有self之类的有关系,没有弄清楚.将单通道的文件在函数外声明,在函数内统一调用可以解决这个问题…
Python的函数定义中可以在参数里添加**kwargs——简单来说目的是允许添加不定参数名称的参数,并作为字典传递参数.但前提是——你必须提供参数名. 例如下述情况: class C(): def __init__(self, **kwargs): print(kwargs) 有如下输入: In [48]: c = C() {} In [49]: c = C(a = 1) {'a': 1} 这一切都符合常理.但是当我使用一个字典传递的时候: In [50]: c = C({'a': 1}) -…
Python基础-函数参数 写在前面 如非特别说明,下文均基于Python3 摘要 本文详细介绍了函数的各种形参类型,包括位置参数,默认参数值,关键字参数,任意参数列表,强制关键字参数:也介绍了调用函数时传递实参的各种方式,包括位置实参,关键字实参以及使用*和**来解包序列和字典. 1. 概述 函数在一定程度上是为了重用而创建的.如果有一段非常优秀的代码段,实现了网络资源下载的功能,如果没有函数,将会在每次需要实现网络资源下载的地方复制该段代码.懒惰即美德,将这段代码抽象为函数,在需要使用的地方…
在python中函数参数中如果带有默认参数list遇到问题 先看一段代码 1 2 3 4 5 6 7 8 9 def f(x,l=[]):     for i in range(x):         l.append(i*i)     print(l)   print('---1---') f(4) print('---2---') f(5) 执行结果: 1 2 3 4 ---1--- [0, 1, 4, 9] ---2--- [0, 1, 4, 9, 0, 1, 4, 9, 16] 预期的结…
值传递和引用传递时C++中的概念,在python中函数参数的传递是变量指向的对象的物理内存地址!!! python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是“传对象引用”的方式.这种方式相当于传值和传引用的一种综合.如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象.如果函数收到的是一个不可变对象(比如数字.字符或者元组)的引用,就不能直接修改原始对象——相当于通过“传值'来传递对象.…