这几道Python面试题,稳准狠,Python面试题No15
必须放一个表情包,太魔性了!
第1题: 修改以下Python代码,使得下面的代码调用类A的show方法?
原始代码
class A(object):
def run(self):
print("基础 run 方法")
class B(A):
def run(self):
print("衍生 run 方法 ")
obj = B()
obj.run()
面试要点:
类继承,只要通过
__class__方法指定类对象就可以了。
修改代码
class A(object):
def run(self):
print("基础 run 方法")
class B(A):
def run(self):
print("衍生 run 方法 ")
obj = B()
obj.__class__ = A
obj.run()
第2题:修改以下Python代码,使得代码能够运行
原始代码
class A(object):
def __init__(self,a,b):
self.__a = a
self.__b = b
def show(self):
print("a=",self.__a,"b=",self.__b)
a = A(5,10)
a.show()
a(20)
面试要点:
是方法对象,为了能让对象实例能被直接调用,需要实现
__call__方法
修改代码
class A(object):
def __init__(self,a,b):
self.__a = a
self.__b = b
def show(self):
print("a=",self.__a,"b=",self.__b)
def __call__(self, num):
print("call:",num + self.__a)
a = A(5,10)
a.show()
a(20)
第3题: 下面这段代码的输出是什么?
原始代码
class B(object):
def __init__(self):
print("B init")
def run(self):
print("B run func")
class A(object):
def run(self):
print("A run func")
def __new__(cls, a):
print("new",a)
if a>10:
return super(A,cls).__new__(cls)
return B()
def __init__(self,a):
print("init",a)
a1 = A(5)
a1.run()
a2 = A(20)
这个运行需要对代码比较熟悉了
结果如下
# a1 = A(5)
new 5
B init
# a1.run()
new 5
B init
B run func
# a2 = A(20)
new 5
B init
B run func
new 20
init 20
第4题: 下面这段代码输出什么?
原始代码
num = 9
def fn1():
num = 20
def fn2():
print(num)
fn2() # 9
fn1() # 啥都没有
fn2() # 9
全局变量和局部变量。
num 不是个全局变量,所以每个函数都得到了自己的 num 拷贝,如果你想修改 num ,则必须用 global 关键字声明
第5题:如何添加代码,使得没有定义的方法都调用myfunc方法?
原始代码
class A(object):
def __init__(self,a,b):
self.a1 = a
self.b1 = b
print("初始化方法")
def myfunc(self):
print("myfunc")
a1 = A(10,20)
a1.fn1()
a1.fn2()
a1.fn3()
修改代码
class A(object):
def __init__(self,a,b):
self.a1 = a
self.b1 = b
print("初始化方法")
def myfunc(self):
print("myfunc")
def __getattr__(self, item):
return self.myfunc
a1 = A(10,20)
a1.fn1()
a1.fn2()
a1.fn3()
考点
python的默认方法, 只有当没有定义的方法调用时,才会调用方法__getattr__。
当 fn1 方法传入参数时,我们可以给 myfunc方法增加一个 *args 不定参数来兼容。
第6题:关注题,最近在公号更新一个神奇的系列入门文章
用自学的经历告诉你,学编程就找梦想橡皮擦
欢迎关注她的公众号,搜索--- 非本科程序员
这几道Python面试题,稳准狠,Python面试题No15的更多相关文章
- 『Python题库 - 简答题』 Python中的基本概念 (121道)
## 『Python题库 - 简答题』 Python中的基本概念 1. Python和Java.PHP.C.C#.C++等其他语言的对比? 2. 简述解释型和编译型编程语言? 3. 代码中要修改不可变 ...
- 面试题之第一部分(Python基础篇) 80题
第一部分(python基础篇)80题 为什么学习Python?==*== # 1. python应用于很多领域,比如后端,前端,爬虫,机器学习(人工智能)等方面,几乎能涵盖各个开发语言的领域,同时它相 ...
- Python学习【第一篇】Python简介
Python简介 Python前世今生 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. 现在,全世界差不多有600多种编 ...
- C语言面试题大汇总之华为面试题 Eddy整理
1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局 ...
- 【python全栈开发】初识python
本人最开始接触python是在2013年接触,写过hello word!在此之前对开发类没有多大兴趣,不知道重要性,属于浑浑噩噩,忙忙乎乎,跌跌撞撞的.随后选择了Linux运维作为就业主攻方向. 经过 ...
- python 全栈开发,Day43(python全栈11期月考题)
python全栈11期月考题 1.常用字符串格式化有哪些?并说明他们的区别 2.请手写一个单例模式(面试题) 3.利用 python 打印前一天的本地时间,格式为‘2018-01-30’(面试题) 4 ...
- Python学习系列(四)Python 入门语法规则2
Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, ...
- 『Python基础』第2节: Python简介及入门
一. Python介绍 Python是一门高级计算机程序设计语言,1989年,荷兰的Guido von Rossum创造了它.Guido是是一个牛人,1982年,他从阿姆斯特丹大学获得了数学和计算机硕 ...
- python的库有多少个?python有多少个模块?
这里列举了大概500个左右的库: ! Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主 ...
随机推荐
- python优缺点小结
优点: 1.语言简洁优美 例如去除了大括号,写法简单,写法更接近于英语,其他语言几十上百行的代码,十来行就能解决,而且还好看 2.跨平台,window.linux.mac通用 3.排行高,社区完善 ...
- 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA)
主要内容: 一.降维与PCA 二.PCA算法过程 三.PCA之恢复 四.如何选取维数K 五.PCA的作用与适用场合 一.降维与PCA 1.所谓降维,就是将数据由原来的n个特征(feature)缩减为k ...
- axios无法在ie9,10,11环境下运行的问题解决
npm install es6-promise --save-dev import promise from 'es6-promise'; promise.polyfill();
- matlab之boundary()函数
j = boundary(x,y,0.1); %这个函数是求一堆(平面)点的边界,它不是凸包,这里的边界可以凹陷,第三个参数0.1代表以松散的形式画出边界,1是以最紧凑的形式画出边界. 下面这个是官网 ...
- html5--2.10综合实例2-移动端页面练习
html5--2.10综合实例2-移动端页面练习 学习要点 通过一个简单的移动手机页面,复习学过的内容 手机网页的测试 手机布局的屏幕设定 手机网页的测试方法 直接在手机上测试,比较麻烦,效果好 电脑 ...
- python3 - 写一个生成双色球号码的一个程序,生成的号码写到文件里面
写一个生成双色球号码的一个程序,生成的号码写到文件里面 # 中奖号码由6个红色球号码和1个蓝色球号码组成 # 篮球范围:01-16 # 红球范围:01-33 def swq(num): random. ...
- centos7搭建redis主从复制,并模拟故障切换。
Cntos7搭建redis主从复制,并模拟故障主从切换 主从复制搭建 主机:192.168.161.179 从机:192.168.161.180 1. 安装主redis 自己本地环境,关 ...
- MSTAR GAMMA
1.读取系统GAMMA值 2.在此基础上微调 3.导出Gamma.txt->导入系统.“Gamma12BIT_256.c”或者“Gamma12BIT_1024.c”. Read 微调&写 ...
- web.xml中的<jsp-config>的用法详解
<jsp-config> 包括<taglib> 和<jsp-property-group> 两个子元素. 其中<taglib>元素在JSP 1.2时就已 ...
- 《SpringBoot揭秘 快速构建微服务体系》读后感(五)
应用日志和spring-boot-starter-logging 快速web应用开发与spring-boot-starter-web 1.项目结构层面的约定