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面试总结2(函数常考题和异常处理)的更多相关文章

  1. Python面试知识点小结

    一.Python基础 1.Python语言特性: 动态型(运行期确定类型,静态型是编译型确定类型),强类型(不发生隐式转换,弱类型,如PHP,JavaScript就会发生隐患式转换) 2.Python ...

  2. python面试总结3(性能分析优化,GIl常考题)

    python性能分析和优化,GIL常考题 什么是Cpython GIL Cpython解释器的内存管理并不是线程安全的 保护多线程情况下对python对象访问 Cpython使用简单的锁机制避免多个线 ...

  3. 10个Python面试常问的问题

    概述 Python是个非常受欢迎的编程语言,随着近些年机器学习.云计算等技术的发展,Python的职位需求越来越高.下面我收集了10个Python面试官经常问的问题,供大家参考学习. 类继承 有如下的 ...

  4. Python面试常考点之深入浅出链表操作

    Python面试常考点之深入浅出链表操作 在Python开发的面试中,我们经常会遇到关于链表操作的问题.链表作为一个非常经典的无序列表结构,也是一个开发工程师必须掌握的数据结构之一.在本文中,我将针对 ...

  5. Python面试常问的10个问题

    很多人想找Python工作,面试往往在基础知识点采坑了 Python是个非常受欢迎的编程语言,随着近些年机器学习.云计算等技术的发展,Python的职位需求越来越高.下面我收集了10个Python面试 ...

  6. python面试大全

    问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Par ...

  7. Python面试必须要看的15个问题

    本文由EarlGrey@编程派独家编译,转载请务必注明作者及出处. 原文:Sheena@codementor 译文:编程派 引言 想找一份Python开发工作吗?那你很可能得证明自己知道如何使用Pyt ...

  8. Python面试应急5分钟!

    ​ 不论你是初入江湖,还是江湖老手,只要你想给自己一个定位那就少不了面试!面试的重要性相信大家都知道把,这就是我们常说的“第一印象”,给大家说一下我的面试心得把,面试前的紧张是要的,因为这能让你充分准 ...

  9. 常见的25个python面试问答

    常见的25个python面试问答 说到好用简洁的大数据技术,除了Hadoop.R等等,Python也是其中熠熠生辉的一员,因而广受企业和商家的青睐.求职季,不少应聘者在面试相关职业时都被要求掌握Pyt ...

随机推荐

  1. osg指定向量旋转指定角度

    向量AB,沿着n旋转10度 osg::Vec3 left = AB*osg::Matrix::rotate(osg::inDegrees(10), n); osg::Vec3 right = AB*o ...

  2. 【Java】Swagger快速入门

    Swagger 简介 Swagger 是一套基于 OpenAPI 规范构建的开源工具,可以帮助我们设计.构建.记录以及使用 Rest API.Swagger 主要包含了以下三个部分: Swagger ...

  3. 如何基于EasyDSS流媒体RTMP、HLS(m3u8)、HTTP-FLV、RTSP服务器体系的全套SDK完成各种场景下的视频应用需求

    需求背景 回顾EasyDSS的发展过程,基本上保持的是先局部后系统.先组件后平台的发展方式,一步一步夯实每一个细节功能点,从最基础.最兼容的音视频数据的拉流获取,到高效的.全兼容的数据推流,再到流媒体 ...

  4. webpack实现跨域

    在devServer字段下配置proxy. // 本地开发 Server 配置 const DEV_SERVER_CONFIG = { historyApiFallback: true, hot: t ...

  5. [LeetCode] 283. Move Zeroes 移动零

    Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...

  6. 【视频开发】ffmpeg 的编译选项

    ffmpeg xxxx$ ./configure --help Usage: configure [options] Options: [defaults in brackets after desc ...

  7. Saltack 针对用户进行权限控制

    一. client_acl 配置使用 1.1 client_acl概述 开启对系统上非root的系统用户在master上执行特殊的模块,这些模块名可以使用正则表达式进行表示,不能指定对那些minion ...

  8. Git 工作流之 GitFlow

    GitFlow学习: 先学习这篇:点击打开链接 Gitflow工作流是经典模型,体现了工作流的经验和精髓.随着项目过程复杂化,会感受到这个工作流中深思熟虑和威力. ////////////////// ...

  9. 嵌入式qt显示中文和隐藏鼠标

    最近项目快接近尾声了,要把项目移植到板子上,但是板子上的系统没有安装字库,导致中文无法显示,并且有一个很讨厌的鼠标光标(又没有鼠标),上网找了一些解决方案,记录一下 qt显示中文: 如果你急于在ARM ...

  10. TemplateDoesNotExist

    路径问题,可能是没有配置这一行: