听说这是70%学Python人,都会弄错的题,看你是否学到位
菜鸟独白
Python语言虽然优美,简洁和强大,但是也有很多坑,一不小心就会掉进去。我学Python的时候也遇到过,今天总结一下,希望对大家能有收获!
1.陷阱1:可变默认参数
Python里面可变参数非常灵活,但是也有陷阱,不信你看看这个小例子:
我们希望每次调用这个函数的,因为第二个参数是默认参数,如果不提供第二个参数,就会创建一个新的列表,然后返回列表,大家猜猜看结果应该是多少:
是不是应该为[1][2][3].
但是实际上结果为:
[1, 2, 3]
[1, 2, 3]
[1, 2, 3]
也就是说变量地址l1,l2被l3污染了,为啥呢:
当函数被第一次调用的时候,这个默认的res列表就被创建了,这个列表的地址空间就生成了!关键来了,Python的默认参数就被创建 一次,而不是每次调用函数的时候创建。也就是说,后面的代码对这个列表的改变,会前面
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何使用jMeter发送两个逻辑上相关的HTTP请求
在前一篇文章使用jMeter构造大量并发的随机HTTP请求里我通过jMeter构造了大量的HTTP GET并发请求,对服务器产生了大量读操作。 现在我有另一个需求场景:假设我开发了一个创建Service Request的微服务,需要使用HTTP post调用。为了防止Cross Site Request Forgery(跨站域请求伪造),这个微服务调用时需要传一个XSRF token,这个XSRF token需要另一个HTTP get请求从服务器请求。 因此,这里存在两个逻辑上相关的HTTP请求: 1. 先调用HTTP get从服务器读取XSRF token 2. 将第一步获得的XSRF token作为HTTP post 请求头部的一个参数传至服务器。 用jMeter怎么实现这个场景呢? 总的思路就是使用Transaction Controller,将http get请求和http post请求包在一起,如下图所示。 在第一个http get请求里,使用HTTP头部参数x-csrf-token去读取token。 创建一个参数jerrycsrftoken,使用正则表达式将服务器通过HTT...
- 下一篇
C# Windows服务以指定用户运行
参考一下 https://bbs.csdn.net/topics/330151879 服务程序以LocalSystem安装运行没问题,但用这个账户运行的服务无法访问局域网共享资源,比较麻烦,所以想指定用某个账户来启动服务。但是当我指定用Administrators组里某个用户安装服务时,显示“帐户名无效或不存在,或者密码对于指定的帐户名无效”的信息,导致服务安装不成功。其实账户名和密码当然是正确的。 弹出窗口输入 .\用户名 和 密码 注意: .\
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- 设置Eclipse缩进为4个空格,增强代码规范
- MySQL8.0.19开启GTID主从同步CentOS8