我的编程空间,编程开发者的网络收藏夹
学习永远不晚

10个Python面试常问的问题分别是哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

10个Python面试常问的问题分别是哪些

10个Python面试常问的问题分别是哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

概述

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

1、类继承

有如下的一段代码:

class A(object):      def show(self):          print 'base show'   class B(A):      def show(self):          print 'derived show'   obj = B()  obj.show()

如何调用类A的show方法了。

方法如下:

obj.__class__ = Aobj.show()

__class__方法指向了类对象,只用给他赋值类型A,然后调用方法show,但是用完了记得修改回来。

2、方法对象

问题:为了让下面这段代码运行,需要增加哪些代码?

class A(object):     def __init__(self,a,b):         self.__a = a         self.__b = b     def myprint(self):         print 'a=', self.__a, 'b=', self.__b a1=A(10,20) a1.myprint() a1(80)

答案:为了能让对象实例能被直接调用,需要实现__call__方法

class A(object):     def __init__(self, a, b):         self.__a = a         self.__b = b     def myprint(self):         print 'a=', self.__a, 'b=', self.__b     def __call__(self, num):         print 'call:', num + self.__a

3、new和init

下面这段代码输出什么?

class B(object):      def fn(self):          print 'B fn'      def __init__(self):          print "B INIT"   class A(object):      def fn(self):          print 'A fn'       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.fn()  a2=A(20)  a2.fn()

答案:

NEW 5 B INIT B fn NEW 20 INIT 20 A fn

使用__new__方法,可以决定返回那个对象,也就是创建对象之前,这个可以用于设计模式的单例、工厂模式。__init__是创建对象是调用的。

4、Python list和dict生成

下面这段代码输出什么?

ls = [1,2,3,4]  list1 = [i for i in ls if i>2]  print list1  list2 = [i*2 for i in ls if i>2]  print list2   dic1 = {x: x**2 for x in (2, 4, 6)}  print dic1   dic2 = {x: 'item' + str(x**2) for x in (2, 4, 6)}  print dic2   set1 = {x for x in 'hello world' if x not in 'low level'}  print set1

答案:

[3, 4]   [6, 8] {2: 4, 4: 16, 6: 36} {2: 'item4', 4: 'item16', 6: 'item36'} set(['h', 'r', 'd'])

5、全局和局部变量

下面这段代码输出什么?

num = 9   def f1():      num = 20   def f2():      print num   f2()  f1()  f2()

答案:

9  9

num不是个全局变量,所以每个函数都得到了自己的num拷贝,如果你想修改num,则必须用global关键字声明。比如下面这样

num = 9  def f1():      global num      num = 20  def f2():     print num  f2()  f1()  f2()  # prints:  #      9  #      20

6、交换两个变量的值

一行代码交换两个变量值

a=8  b=9

答案:

(a,b) = (b,a)

7、默认方法

如下的代码

class A(object):      def __init__(self,a,b):          self.a1 = a          self.b1 = b          print 'init'      def mydefault(self):          print 'default'   a1 = A(10,20)  a1.fn1()  a1.fn2()  a1.fn3()

方法 fn1/fn2/fn3 都没有定义,添加代码,是没有定义的方法都调用mydefault函数,上面的代码应该输出

defaultdefaultdefault

答案:

class A(object):     def __init__(self,a,b):          self.a1 = a          self.b1 = b          print 'init'      def mydefault(self):          print 'default'      def __getattr__(self,name):          return self.mydefault   a1 = A(10,20)  a1.fn1()  a1.fn2()  a1.fn3()

方法__getattr__只有当没有定义的方法调用时,才是调用他。当fn1方法传入参数时,我们可以给mydefault方法增加一个*args不定参数来兼容。

class A(object):      def __init__(self,a,b):          self.a1 = a          self.b1 = b          print 'init'      def mydefault(self,*args):          print 'default:' + str(args[0])      def __getattr__(self,name):          print "other fn:",name          return self.mydefault   a1 = A(10,20)  a1.fn1(33)  a1.fn2('hello')  a1.fn3(10)

8、包管理

一个包里有三个模块,mod1.py, mod2.py, mod3.py,但使用from demopack import *导入模块时,如何保证只有mod1、mod3被导入了。

答案:增加__init__.py文件,并在文件中增加:

__all__ = ['mod1','mod3']

9、闭包

写一个函数,接收整数参数n,返回一个函数,函数的功能是把函数的参数和n相乘并把结果返回。

答案:

def mulby(num):      def gn(val):          return num * val      return gn   zw = mulby(7)  print(zw(9));

10、性能

解析下面的代码慢在哪

def strtest1(num):      str='first'      for i in range(num):          str+="X"      return str

答案:python的str是个不可变对象,每次迭代,都会生成新的str对象来存储新的字符串,num越大,创建的str对象越多,内存消耗越大。

关于10个Python面试常问的问题分别是哪些问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

10个Python面试常问的问题分别是哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

10个Python面试常问的问题分别是哪些

10个Python面试常问的问题分别是哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。概述Python是个非常受欢迎的编程语言,随着近些年机器学习、云计算等技术的发展,P
2023-06-17

Python常问的面试题有哪些

今天小编给大家分享一下Python常问的面试题有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Q51.请解释使用args
2023-07-05

Linux面试中最常问的10个问题总结

前言 如果你要去面试一个linux系统运维工程师的职位,下面这十个最常见的问题一定要会,否则你的面试可能就危险了。这些都是比较基本的问题,大家要理解,不能光死记硬背。 1、如何查看系统内核的版本 这里有两种方法: 1) uname -a u
2022-06-04

Python面试最常问到的问题有哪些

本篇内容介绍了“Python面试最常问到的问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python基础面试题1、 Python
2023-07-06

面试中不常见却一定会问到Python题分别是哪些

这篇文章将为大家详细讲解有关面试中不常见却一定会问到Python题分别是哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python面试题解析编者按:恰逢金三银四招聘季,很多朋友都在忙着跳
2023-06-16

Python常见面试问题有哪些

这篇文章主要介绍“Python常见面试问题有哪些”,在日常操作中,相信很多人在Python常见面试问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python常见面试问题有哪些”的疑惑有所帮助!接下来
2023-06-04

Python常问的100个面试问题汇总(下篇)

这篇文章主要介绍了Python常问的100个面试问题汇总(下篇),文章内容详细,简单易懂,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2023-01-16

Python常问的100个面试问题汇总(上篇)

这篇文章主要介绍了Python常问的100个面试问题汇总(上篇),文章内容详细,简单易懂,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2023-01-16

Java编程中最容易忽略的10个常见问题分别有哪些

本篇文章给大家分享的是有关Java编程中最容易忽略的10个常见问题分别有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在Java编码中,我们容易犯一些错误,也容易疏忽一些问
2023-06-17

Python的面试问答题有哪些

今天小编给大家分享一下Python的面试问答题有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、基础知识1. 列出 5
2023-06-27

Java面试题中常见的问题有哪些

本篇内容主要讲解“Java面试题中常见的问题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java面试题中常见的问题有哪些”吧!  1、java 中会存在内存泄漏吗,请简单描述。  答:会
2023-06-02

经常被问的JAVA面试题有哪些

这篇文章主要介绍了经常被问的JAVA面试题有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇经常被问的JAVA面试题有哪些文章都会有所收获,下面我们一起来看看吧。什么是值传递和引用传递?值传递是对基本型变量而
2023-06-02

常见的Linux基础面试问题有哪些

小编给大家分享一下常见的Linux基础面试问题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Q.1: Linux 操作系统的核心是什么?ShellKerne
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录