python测开面试题_python十道经典面试题,测试你的python功底!

来源:python学习专栏

第一题,对象的类属性指向类对象class A():

def show(self):

print( A_show )

class B():

def show(self):

print( B_show )

obj =B()

obj.show()

#这样我们能够正常调用

#那么我们能不能

#obj.show()

#我们想调用A中的show

我们看一下obj.__class__ =A

obj.show()

这样就可以直接调用了

第二题、方法对象__call__class People():

def __init__(self,length):

self.__length = length

def hand(self):

print( 手有 {} 米 .format(self.__length))

a=People(1)

a.hand() #这样我们是能够完美运行的

那么我们不小心 a(10) 这样了,我希望他能够正常运行

这里我们需要用到一个对象方法__call__class People():

def __init__(self,length):

self.__length = length

def hand(self):

print( 手有 {} 米 .format(self.__length))

def __call__(self, *args):

return self.hand()

a=People(1)

a() #这时a() 会找到__call__ 然后运行返回的函数

第三题,__new__ 和 __init__

1.init 通常用于初始化一个新实例,控制这个初始化的过程,比如添加一些属性, 做一些额外的操作,发生在类实例被创建完以后。它是实例级别的方法。

2 ,new 通常用于控制生成一个新实例的过程。它是类级别的方法。

__new__ 在__init__ 之前运行

3 new至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供

4 new必须要有返回值,返回实例化出来的实例,这点在自己实现new时要特别注意,可以return父类new出来的实例,或者直接是object的new出来的实例

class A():

def func(self):

print( A_func )

def __init__(self):

print( A_init )

class B():

def func(self):

print( B_func )

def __new__(cls, a):

print( new ,a)

if a>10:

return super(B,cls).__new__(cls)

return A()

def __init__(self,a):

print( B_init )

#想想输出结果

a = A()

b = B(5)

b.func()

b = B(11)

b.func()

第四题 ,列表解析式

生成列表list1 = [1,2,3,4]

#取出list1中大于二的值

list2 =[i for i in list1 if i>2]

print(list2)

生成字典dict1 = {i: i*2 for i in list1 if i*2 >4 }

print(dict1)dict2 = {i: items +str(i*2) for i in list1 if i*2 >4 }

print(dict2)

第五题,变量域num = 666

def f1():

num = 888

print(num)

def f2():

print(num)

print(num)

f1()

print(num)

f2()

# 666

#888

#666

#666

需要在函数中改变变量

我们需要使用global

这只是局部变量和全局变量的变量域

我们继续看一下函数嵌套的变量域def fun():

num = 0

def fun1():

num = 1

def fun2():

print(num)

fun2()

fun1()

fun()

#1

在函数嵌套中变量会逐级网上找变量

这样不会存在找不到变量的问题

在fun2()找不到会到fun1()中找

第六题,默认方法,python反射机制,getattrclass A:

def __init__(self,a,b):

self.a = a

self.b = b

def func(self):

print( a+b={} .format(self.a+self.b))

a1 = A(1,2)

a1.func()

#al.fun() 这样呢,就该报错了

好吧,我不想让它报错class A:

def __init__(self,a,b):

self.a = a

self.b = b

def func(self):

print( a+b={} .format(self.a+self.b))

def __getattr__(self,args):

return self.func #切记这里不能加() 因为 func()()是不能执行的

a1 = A(1,2)

a1.fun()

#3

__getattr__,hasattr

这是python的反射机制,getattr会接收参数,

然后执行,对应的还有hasattr,大家可以自己深究

第七题,包管理

当 一个包pack里有三个模块,model, model2, model3,

采用from pack import *

怎样只导入 model model2

添加 __init__.py文件,在文件中加入__all__ = [ model , model2 ]

就能实现了

第八题, 函数闭包

#要求,写一个函数,接受一个整数参数N,返回一个函数,函数功能是把,函数的参数和N相乘的结果返回def f1(N):

def f2(val):

return N*val

return f2

这题解释量比较大,大家可以到我的另外一篇文章学习

点击链接就可以跳转

第十题,装饰器

装饰器本质就是函数 功能是为其它的函数添加功能

原则是

1,不改变修饰函数的源代码

2, 不修改修饰函数的调用方式

装饰器=高阶函数+函数嵌套+闭包

我想在不改变一个函数源码状态下,测试运行时间import time

def timer(func):

def wapper(a,*args, **kwargs):

if a ==1:

start = time.time()

res = func(*args, **kwargs)

end = time.time()

print( 函数运行时间 ,end-start)

return res

else:

return 1

return wapper

#我们测试下面这个函数的时间

#只需要把上面的函数加一个@写在函数上

#就可以实现了

a=1

@timer

def cal(a,l):

res = 0

for i in l:

time.sleep(0.01)

res+=i

return res

res = cal(range(20))

print(res)

运行一下,你就知道装饰器的强大之处了

知道这些面试题,并不代表你面试就能够顺利通过

我们还是需要在平时多记录知识

祝大家早日找到适合自己的工作

今天的十道题就到这里了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国服服务器_外服玩家热议LOL国服倒计时插件:说好的公平竞技呢?

对于很多国服的英雄联盟玩家来说,自从多年前各种盒子辅助软件出现之后,玩家就越来越依赖这些辅助工作所提供的便捷,虽说在过去几年间官方已经对这些功能尽量进行了简化以及遏制,但比如打野计时器、水晶计时、眼位监视等等至今仍然…

国外计算机专业入门语言,【转自知乎】给想要报考计算机专业学生的一些建议...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼在知乎上问同类的问题较多,在学习上有困惑的同学好像还不少,我就花点时间写一下自己的看法,供在计算机领域起步的同学参考。欢迎业界高人补充和指正。1.本科应该比专科、职业学院要多一些人文类课…

python编辑elif显示错误_Python运行的17个时新手常见错误小结

1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”) 该错误将发生在类似如下代码中: if spam 42 print(Hello!) 2)使用 而不是 (导…

int转unsigned int_谢劲课题组在基于锰催化的转金属化基元反应取得系列进展

本文来自微信公众号:X-MOLNews用廉价的过渡金属催化剂替代贵金属催化剂是解决未来自然资源问题紧缺的一个很好选择。锰是地壳中含量排第三位的过渡金属,价格便宜,环境危害小。但由于其较低的催化活性,锰催化参与的许多金属有机化学…

python的作者为什么要创造python_为什么要学习Python?老男孩Python开发

在众多人的脑海中,Python无非就是一门编程语言而已,并没有什么特色,但是提及学习编程大部分人都会推荐Python,为什么?今天老男孩教育就给你说说学习Python的四大理由吧。首先先来了解一下什么是Python?Python是一个高层次的结合…

东电计算机考研大概分数,2019年各学院硕士研究生拟录取名单公示

2019年电气工程学院拟录取名单.doc 540.0 KB 2019-04-09 09:40 -a--2019年化学工程学院拟录取名单.doc 169.5 KB 2019-04-09 09:17 -a--2019年机械工程学院拟录取名单.doc 63.0 KB 2019-04-05 16:57 -a--2019年计算机工程学院拟录取名单.doc 165…

pip更换镜像源_Ubuntu20.04LTS更换软件源镜像

我用的是Linux的Windows子系统下的Ubuntu20.04LTS版本,这个版本很重要!首先是备份一下开始的源打开位置/etc/apt/sources.list备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后删除掉sources.listsudo rm /etc/apt/sources.list在目录 …

rf框架的缺点_2017热门开源自动化测试框架优缺点对比

原标题:2017热门开源自动化测试框架优缺点对比时间一晃已来到 2017 年的最后一个季度,TestProject 对比了在今年比较热门的 7 款开源 自动化测试框架的优缺点,以帮助你选择适合自己的测试框架。1. Robot FrameworkRobot Framework(RF)是用于验…

云教版认识计算机说课,【教学设计】第1册第1课《认识电脑交朋友》

备课时间:2017年9月3日一、教材分析本节课是省编最新版《小学信息技术》教材第一册第一课。“学一学”由三个部分组成:探寻电脑应用技术;了解电脑组成;养成良好习惯。这三个部分的知识,不仅拓展了学生的视野&#xff0…

python中模块和包是什么_Python中模块和包的概念

将所有代码放入一个py文件&#xff1a;无法维护 如果将代码分拆放入多个py文件&#xff0c;好处&#xff1a; 同一个名字的变量互不影响 模块a 模块b | | V V #a.py #b.py x 5 x str def f1(): def f1(iterable): pass pass 引用其他模块 #test.py <---------------------…

卷组删除pv_如何安全的删除Linux LVM中的PV物理卷(硬盘或分区)

情况介绍&#xff1a;一、由于硬盘或者分区的操作方式其实都一样&#xff0c;所以我这里就以分区为例。二、/home分区2.6G&#xff0c;由如下pv组成&#xff1a;/dev/sda5 100M/dev/sda6 200M/dev/sda7 300M/dev/sda8 400M/dev/sda9 500M/dev/sda10 600M/dev/sda11 500M很碎对吧…

python输入float_python – 在tensorflow中创建一个float64变量

我正在尝试进行逻辑回归,我的训练数据集来自一个numpy float64数组.我的代码看起来像, import tensorflow as tf graph tf.Graph() with graph.as_default(): examples tf.constant(mat6) # mat6 is a numpy float64 array t_labels tf.constant(labels) # labels is an a nu…

计算机操作系统英文版课后答案,计算机操作系统(第3版)课后习题答案(完整版)...

内容简介&#xff1a;计算机操作系统(第3版)课后习题答案(完整版)第一章1&#xff0e;设计现代OS的主要目标是什么&#xff1f;答&#xff1a;(1)有效性 (2)方便性 (3)可扩充性 (4)开放性2&#xff0e;OS的作用可表现在哪几个方面&#xff1f;答&#xff1a;(1)OS作为用户与计算…

免费mysql空间_php+mysql免费空间

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

宇宙人工智能计算机程序,由人工智能推理出:整个宇宙会变成一个玄计算机,宇宙是虚拟的...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼人工智能现在的计算机芯片是纳米级的&#xff0c;可简称纳米计算机&#xff0c;未来可能出现量子计算机、玄(量子由玄组成)计算机。现在看生物实质上也是纳米计算机&#xff0c;具有计算机的全部功能&#xff0c;不同生物的DNA长度…

cdn需要备案吗_车子贴改色膜需要到车管所备案吗?

改色膜至今为止已经流行很多年了&#xff0c;但还是有部分车主对于贴改色膜之后备案这个事情还不是很了解&#xff0c;对于这个就来点知识小科普吧~~首先汽车贴改色膜是合法的&#xff0c;但这个也是有前提的&#xff0c;首先汽车车身更换颜色超过30%的话&#xff0c;就需要到车…

mysql数据库中文显示_关于Mysql数据库中文显示问题

挣扎在初级Web开发&#xff0c;无论是hibernate还是基础的jdbc都要涉及到一个编码问题&#xff0c;毕竟编程这套东西是伦家外国银发明的&#xff0c;我大中华的程序猿不得不低头&#xff0c;闲言少叙。严明而言&#xff0c;3点&#xff1a;1.mysql配置文件my.ini中添加2条&…

python selenium采集速卖通_2.不苟的爬虫小教程系列:python爬虫技术栈介绍

鉴于爬虫初学者们&#xff0c;往往也是编程的初学者&#xff0c;我在这里介绍一套最常用的技术栈&#xff0c;不求多&#xff0c;只求精。 毕竟我们的目标是采集到数据&#xff0c;只要能够成功实现目标的工具就是好工具。 爬虫框架scrapy&#xff1a;该框架是scrapinghub公司开…

读算法霸权笔记03_操控与恐吓

1. 市场失灵 1.1. 探索市场失灵现象就像寻宝游戏&#xff0c;很有意思 1.2. 建立一种算法来预测这个循环出现差错——多找回的两枚硬币——的可能性并对此下注 1.2.1. 盈利模式消失了&#xff0c;或者市场中的其他人也了解了这个模式&#xff0c;先行者优势消失 1.3. 在很多…

win10看计算机属性,win10系统查看windows7版本号要比计算机属性具体的图文步骤

win10系统使用久了&#xff0c;好多网友反馈说关于对win10系统查看windows7版本号要比计算机属性具体设置的方法&#xff0c;在使用win10系统的过程中经常不知道如何去对win10系统查看windows7版本号要比计算机属性具体进行设置&#xff0c;有什么好的办法去设置win10系统查看w…