这几道Python面试题,稳准狠,Python面试题No15
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了这几道Python面试题,稳准狠,Python面试题No15,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2242字,纯文字阅读大概需要4分钟。
内容图文
![这几道Python面试题,稳准狠,Python面试题No15](/upload/InfoBanner/zyjiaocheng/822/e1bd413b87f1415a93bfaa67bea537a6.jpg)
第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 不定参数来兼容。
内容总结
以上是互联网集市为您收集整理的这几道Python面试题,稳准狠,Python面试题No15全部内容,希望文章能够帮你解决这几道Python面试题,稳准狠,Python面试题No15所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。