python常考题_python面试总结2(函数常考题和异常处理)
python函数常考题
可变类型为参数
不能类型为参数
python如何传递参数
传递值还是引用呢?都不是。唯一支持的参数传递是共享穿参
Call by Object(Call by Object Reference or Call by Sharing)
Call by sharing(共享传参)。函数形参获得实参中各个引用的副本
def flist(l):
l.append(0)
print(l)
l = [] #指向同一个内存地址
flist(l) # [0]
flist(l) # [0,0]
#list作为可变类型传递,可变类型在同一对象上修改
def fstr(s):
s += 'a'
print(s)
s = 'hehe' #不可变类型传递,每次赋值在一个新对象上操作,传递的形参指向新的对象
fstr(s) # 'hehea'
fstr(s) # 'hehea'
python可变/不可变对象
搞懂可变和不可变内置对象有利于理解函数参数的副作用
哪些是可变对象?哪些不可变?
不可变对象 bool/int/float/tuple/str/frozenset
可变对象 list/set/dict
python可变参数作为默认参数
# 默认参数只计算一次
def flist(l=[1]):
l.append(1)
print(l)
flist()# [1,1]
flist()#[1,1,1]
python*args,**kwargs
函数传递中 *args, **kwargs含义是什么
用来处理可变参数
*args 被打包成tuple
**kwargs被打包成为dict
什么是python异常
BaseException
SystemExit/KeyboardInterrupt/GeneratorExit
Exception
使用异常的常见场景
什么时候需要捕获处理异常呢?看python内置异常的类型
网络请求(超时,连接错误)
资源访问(权限,资源不存在)
代码逻辑(越界访问,keyError)
try:
# func#可能会抛出异常的代码
except (Exception1, Exception2) as e: #可以捕获多个异常并处理
# 异常处理的代码
else:
# pass # 异常没有发生的时候代码逻辑
finally:
pass # 无论异常有没有发生都会执行代码,一般处理资源的关闭和释放
如何自定义异常
继承Exception实现自定义异常
给异常加上一些附加信息
处理一些业务相关的特定异常(raise MyException)
class MyException(Exception);
pass
try:
raise MyException('my exception')
except Exception as e:
print(e)
python常考题_python面试总结2(函数常考题和异常处理)相关推荐
- 面试python的理解_Python面试中会遇到的一些问题,和自己的理解。
1 类变量和实例变量 类变量: 是可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的).例如下例中,num_of_instance 就是类变量,用于跟踪存在着多少个Test 的实例 ...
- 如何用python生成软件_python中的生成器函数是如何工作的?
1. python中的普通函数是怎么运行的? 当一个python函数在执行时,它会在相应的python栈帧上运行,栈帧表示程序运行时函数调用栈中的某一帧.想要获得某个函数相关的栈帧,则必须在调用这个函 ...
- python 返回空格_Python面试之 is 和 == 的区别
Python爬虫人工智能学习教程www.python88.cn 面试实习生的时候,当问到 is 和 == 的区别时,很多同学都答不上来,搞不清两者什么时候返回一致,什么时候返回不一致.本文我们来看一 ...
- python 一等公民_Python中一等公民——函数
Python中"一等公民"--函数 Python的函数是"一等公民". 你可以将它们分配给变量,将它们存储在数据结构中,将它们作为参数传递给其他函数,甚至将它们 ...
- python 挂起_Python Killing挂起函数
我正在为一个概念性问题编写一个服务器后端,这个问题可能是在一些CTF挑战中托管的. 它将托管在Ubuntu12.04LTS.nginx1.1.19和uWSGI 1.0.3-debian上,后者将处理p ...
- python计时器代码_Python功能点实现:函数级/代码块级计时器
工程中我们常常需要对某一个函数或者一块代码计时,从而监测系统关键位置的性能.计时方法是在代码块前后分别记录当前系统时间,然后两者相减得到代码块的耗时.最简单原始的实现类似: from datetime ...
- python求极限_Python符号计算之实现函数极限的方法
python, 符号计算(symbolic)怎么转换到数值计算(nupython, 符号计算(symbolic)怎么转换到数值计算(numerical)?比如说小编有#./usr/bin/env py ...
- 怎么用python算极限_Python符号计算之实现函数极限的方法
SymPy是符号数学的Python库.它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁.易于理解和扩展 #coding:utf-8 ''' 函数极限 ''' import sympy sym ...
- python句子反转_Python自定义句子反转函数
上一篇介绍字符串反转:字符串'hello'变成'olleh',也就是反转字符串,尽量不用Python的函数,尽量节省时间与空间. 这次句子反转,是在字符串反转的基础上的再次反转. 要求:将句子'hel ...
最新文章
- 【分布式事务】面试官问我:MySQL中的XA事务崩溃了如何恢复??
- EE JSP:使用JSTL标记库生成动态内容
- Vasya and Multisets CodeForces - 1051C 模拟|分类讨论
- mariadb主从搭建
- html表单怎么设置编码,form 表单 设置编码和页面编码
- MySQL select语句直接导出数据
- MySQL查询优化之索引
- python 强制转换成字符_Python笔记(三)
- 神奇的G1——Java全新垃圾回收机制
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_20、SpringBoot2.x配置全局异常实战...
- Linux服务器沦陷为肉鸡的全过程实录
- php策略模式作用,PHP设计模式之策略模式详解
- 注册vmvare账号验证码问题
- Android实现图片(拍照+相册)上传功能
- 今天来告诉你caj文件怎么打开
- 一套键鼠同时控制三台电脑?罗技无线键鼠为办公效率加速
- FormData 对象上传二进制文件
- (转)使用cygwin注意事项一
- CentOS7.9 离线安装FTP服务器
- 百度又一神器发布!网友:牛逼炸了...
热门文章
- Activiti 6.x【6】StartEvent(上)
- 容器开启数据服务之旅系列(四):Kubernetes QoS 助力在线运用与大数据离线运用的带宽控制和磁盘控制...
- windows下如何正确使用Jconsole远程连接linux主机上的JVM
- Vue单文件组件基础模板
- 解析IBM TSM6.0版本特色功能与技术优势
- java中static作用详解
- AbstractFactory抽象工厂模式
- 有没有记录程序运行中所有的函数调用堆栈的工具?
- 320. Generalized Abbreviation-- back tracking and bit manipulation(待续)
- emiya-canvas.js 解决ios下拍照倾斜与canvas高清屏下绘图模糊问题