python开发中常见的小坑

(1)可变参数类型作为函数参数默认值,函数参数默认值的设置在Python中只会被执行一次,也就是定义该函数的时候。

解决办法,设置为None,然后判断

(2)Python中的变量名解析遵循所谓的LEGB原则,也就是“L:本地作用域;E:上一层结构中def或lambda的本地作用域;G:全局作用域;B:内置作用域”(Local,Enclosing,Global,Builtin),按顺序查找。

上述错误的出现,是因为当你在某个作用域内为变量赋值时,该变量被Python解释器自动视作该作用域的本地变量,并会取代任何上一层作用域中相同名称的变量。

(3)复制、浅拷贝、深拷贝

复制:直接赋值,传递对象的引用而已,原始对象改变,被赋值的对象也会做相同的改变

浅拷贝(切片操作、工厂函数、copy函数):没有拷贝子对象,所以原始数据改变,子对象会改变

深拷贝:包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变

(4)模块依赖。

a.py文件中的代码:


1

2

3

4

import b

def f():

  return b.x

print f()

b.py文件中的代码:


1

2

3

4

import a

= 1

def g():

  print a.f()

import a不会有问题,但是import b就会有问题了

# module_x.py

def inc_count():

    import module_y

    module_y.count += 1

(5).元祖是不可变的吗?

时间: 2024-10-25 01:03:16

python开发中常见的小坑的相关文章

开发中常见的问题

这篇文章是专门用来记录开发中一些常见的BUG以及常用的零碎知识点,我会隔一段时间更新内容 1.重复调用2次loadView和viewDidLoad 最好不要在UIViewController的loadView方法中改变状态栏的可视性(比如状态栏由显示变为隐藏.或者由隐藏变为显示),因为会导致重复调用2次loadView和viewDidLoad方法 假设状态栏本来是处于显示状态的: 下面的是错误代码: [java] view plaincopy - (void)loadView { NSLog(@

asp.net开发中常见公共捕获异常方式总结(附源码)

本文实例总结了asp.net开发中常见公共捕获异常方式.分享给大家供大家参考,具体如下: 前言:在实际开发过程中,对于一个应用系统来说,应该有自己的一套成熟的异常处理框架,这样当异常发生时,也能得到统一的处理风格,将异常信息优雅 地反馈给开发人员和用户.我们都知道,.net的异常处理是按照“异常链”的方式从底层向高层逐层抛出,如果不能尽可能地早判断异常发生的边界并捕获异 常,CLR会自动帮我们处理,但是这样系统的开销是非常大的,所以异常处理的一个重要原则是“早发现早抛出早处理”.但是本文总结的服

Python - 开发截图识别OCR小工具

一.简介 你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率. 今天,我们就来做一款实时截图识别的小工具.顾名思义,运行程序时,可以实时把你截出来的图片中的文字识别出来. 二.模块 import keyboard # 用于监控键盘按下,触发事件(pip install keyboard) import time from aip import AipOcr # 调用百度接口(pip install baidu-aip) from PIL import ImageGrab

iOS开发——错误总结篇&开发中常见错误和警告总结(三十三)

开发中常见错误和警告总结(三十三) 动画冲突 错误: Unbalanced calls to begin/end appearance transitions for <uivewcontroller> 解决方法1:去掉动画 解决方法2:监听当前view的动画是否完成 解决方法就是,加一个BOOL型的变量,检查是否在做动画. 1 2 if (transiting) { 3 return; 4 } 5 transiting = YES; 6 [self transitionFromViewCon

软件开发中 常见英文文档 缩写(转)

软件开发中常见英文缩写和各类软件开发文档的英文缩写: 英文简写 文档名称 MRD market requirement document (市场需求文档) PRD product requirement document (产品需求文档) SOW 工作任务说明书 PHB Process Handbook (项目过程手册) EST Estimation Sheet (估计记录) PPL Project Plan (项目计划) CMP Software Management Plan( 配置管理计划

ios开发——开发总结篇&amp;开发中常见错误和警告总结(五)

开发中常见错误和警告总结(五) 一.Missing file xxx 如果你在finder中删除了工程里面的文件,xcode上会出现一个警告,Missing file xxx, 有个警告在那恨事不自在.上网着了下,发现了如下解决方法: 1.打开terminal, cd 到刚才你删除的文件的文件夹,就是xcode提示你missing的文件夹 2.执行 svn delete missFileName  二.LLVM GCC Warning 4.3默认使用的是ARC编译,不是原来的GCC编译,所以你编

iOS开发中遇到过的坑

iOS开发中遇到过的坑 前言 做iOS开发这么长时间以来,遇到过不少难题,也踩过不少坑,本来没想过要写这篇文章,但是鉴于以下三点,笔者决定对遇到过的并且还能回忆起来的问题做个记录. 每次问题解决后,满满的成就感,但是当下一次再遇到时,又是一脸懵逼.这个问题我好像见过,但就是不记得怎么解决,记录下来方便以后查阅. 每次面试的时候,面试官总会问我,你在开发中遇到过哪些问题,怎么解决的?问题嘛,挺多的,但是你要我叙述嘛,我......我......我居然一时想不起来,迷之尴尬????(面试官当时想法:

(iOS)开发中收集的小方法

1.颜色转变成图片 - (UIImage *)createImageWithColor:(UIColor *)color {     CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);     UIGraphicsBeginImageContext(rect.size);     CGContextRef context = UIGraphicsGetCurrentContext();     CGContextSetFillColorWithCo

PHP开发中常见的漏洞及防范

PHP开发中常见的漏洞及防范 对于PHP的漏洞,目前常见的漏洞有五种.分别是Session文件漏洞.SQL注入漏洞.脚本命令执行漏洞.全局变量漏洞和文件漏洞.这里分别对这些漏洞进行简要的介绍和防范. 1.session文件漏洞 Session攻击是黑客最常用到的攻击手段之一.当一个用户访问某一个网站时,为了免客户每进人一个页面都要输人账号和密码,PHP设置了Session和Cookie用于方便用户的使用和访向. 防范: 从前面的分析可以知道,Session攻击最常见的就是会话劫持,也就是黑客通过