当前位置: 首页 > news >正文

给公司做企业网站宜兴建设局 审图中心 网站

给公司做企业网站,宜兴建设局 审图中心 网站,门户网站营销特点,装修设计费收费标准2020用一个可变的值作为默认值这是一个绝对值得放在第一个来说的问题。不仅仅是因为产生这种BUG的原因很微妙#xff0c;而且这种问题也很难检查出来。思考一下下面的代码片段#xff1a;def foo(numbers[]):numbers.append(9)print numbers在这里#xff0c;我们定义了一个 lis…用一个可变的值作为默认值这是一个绝对值得放在第一个来说的问题。不仅仅是因为产生这种BUG的原因很微妙而且这种问题也很难检查出来。思考一下下面的代码片段def foo(numbers[]):numbers.append(9)print numbers在这里我们定义了一个 list (默认为空)给它加入9并且打印出来。 foo()[9] foo(numbers[1,2])[1, 2, 9] foo(numbers[1,2,3])[1, 2, 3, 9]看起来还行吧可是当我们不输入number 参数来调用 foo 函数时神奇的事情发生了 foo() # first time, like before[9] foo() # second time[9, 9] foo() # third time...[9, 9, 9] foo() # WHAT IS THIS BLACK MAGIC?![9, 9, 9, 9]那么这是神马情况直觉告诉我们无论我们不输入 number 参数调用 foo 函数多少次这里的9应该被分配进了一个空的 list。这是错的在Python里函数的默认值实在函数定义的时候实例化的而不是在调用的时候。那么我们仍然会问为什么在调用函数的时候这个默认值却被赋予了不同的值因为在你每次给函数指定一个默认值的时候Python都会存储这个值。如果在调用函数的时候重写了默认值那么这个存储的值就不会被使用。当你不重写默认值的时候那么Python就会让默认值引用存储的值(这个例子里的numbers)。它并不是将存储的值拷贝来为这个变量赋值。这个概念可能对初学者来说理解起来会比较吃力所以可以这样来理解有两个变量一个是内部的一个是当前运行时的变量。现实就是我们有两个变量来用相同的值进行交互所以一旦 numbers 的值发生变化也会改变Python里面保存的初始值的记录。那么解决方案如下def foo(numbersNone):if numbers is None:numbers  []numbers.append(9)print numbers通常当人们听到这里大家会问另一个关于默认值的问题。思考下面的程序def foo(count0):count  1print count当我们运行它的时候其结果完全是我们期望的 foo()1 foo()1 foo(2)3 foo(3)4 foo()1这又是为啥呢其秘密不在与默认值被赋值的时候而是这个默认值本身。整型是一种不可变的变量。跟 list 类型不同在函数执行的过程中整型变量是不能被改变的。当我们执行 count1 这句话时我们并没有改变 count 这个变量原有的值。而是让 count 指向了不同的值。可是当我们执行 numbers.append(9) 的时候我们改变了原有的 list 。因而导致了这种结果。下面是在函数里使用默认值时会碰到的另一种相同问题def print_now(nowtime.time()):print now跟前面一样time.time() 的值是可变的那么它只会在函数定义的时候计算所以无论调用多少次都会返回相同的时间 — 这里输出的时间是程序被Python解释运行的时间。 print_now()1373121487.91 print_now()1373121487.91 print_now()1373121487.91这个问题和它的解决方案在 Python 2.x 和 3.x 里都是类似的在Python 3.x 里面唯一的不同是里面的print 表达式应该是函数调用的方式(print(numbers))。大家应该注意到我在解决方案里用了 if  numbers is None 而不是 if not numbers 。这是另一种常见的错误我准备在接下来的文章里面介绍。英文出处Amir Rachum译文出处伯乐在线 - 贱圣OMG
http://www.pierceye.com/news/911716/

相关文章:

  • 网站木马文件删除青岛黄岛网站建设公司电话
  • 一个网站做网站地图的目的企业网站建设框架图
  • 网站建设 swot分析深圳市龙华区繁华吗
  • h5 小米网站模板直接通过ip访问网站
  • 公司建设个网站制作装饰公司网站
  • 高质量的网站内容建设做网站信科网站建设
  • 网站建设倒计时模板学校室内设计效果图
  • 海东营销网站建设公司东莞网络优化排名
  • 株洲网站建设服务建筑公司怎么注册
  • 心理学网站的建设网站开发公司比较有名
  • 需要做网站设计海南网页制作
  • 开发网站有什么用仿站小工具官网
  • 支付宝网站登录入口个人微信公众号如何推广
  • 北京网站制作net2006常见的营销型网站
  • 设计建设网站公司天津市建设信息网官网
  • 企业网站建站 费用比较有名的个人网站
  • 网站规划与开发设计企业班组建设案例
  • 招聘网站开发设计做网站 免费字体
  • 网站上传程序流程桐城住房和城乡建设局网站
  • 回力网站建设初衷ps可以做网站吗
  • 广州网站建设市场佛山专业做网站公司哪家好
  • 四川省凉亭建设工程有限公司网站的博客wordpress
  • 搭建一个网站需要多少钱?如何做网站二级域名
  • 广德县住房和城乡建设网站wordpress网站维护教程
  • 在网站上显示地图金湖县网站建设
  • 网站域名区别吗模板和网站是一体的吗
  • 百度网盟推广怎么选择投放网站抖音seo代理
  • 电商wordpress网站优化百度
  • phpcms v9 网站搬家南通网站设计专家
  • 延安网站建设推广黄骅市网站建设价格