杭州PHP培训
达内杭州PHP培训中心

0571-56020837

热门课程

python面试题及技巧带答案

  • 时间:2020-07-15 11:23
  • 发布:杭州PHP培训
  • 来源:php职场

Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中常见的几个问题。每道题都提供参考答案,希望能够帮助到大家,也祝大家在2020年求职面试中脱颖而出,成就自我。

1、Python中的实例方法、静态方法和类方法有什么区别?

实例方法:接受self参数,并且与类的特定实例相关。

静态方法:使用装饰器 @staticmethod,与特定实例无关,并且是自包含的(不能修改类或实例的属性)。

类方法:接受cls参数,并且可以修改类本身。

我们将通过一个虚构的CoffeeShop类来说明它们之间的区别。

class CoffeeShop:

specialty = 'espresso'

def __init__(self, coffee_price):

self.coffee_price = coffee_price

# instance method

def make_coffee(self):

print(f'Making {self.specialty} for ${self.coffee_price}')

# static method

@staticmethod

def check_weather():

print('Its sunny') # class method

@classmethod

def change_specialty(cls, specialty):

cls.specialty = specialty

print(f'Specialty changed to {specialty}')

CoffeeShop类有一个属性specialty,默认值设为“espresso”。CoffeeShop类的每个实例初始化时都使用了coffee_price这个属性。同时,它还有3个方法,一个实例方法,一个静态方法和一个类方法。

让我们将coffee_price的值设为5,来初始化CoffeeShop的一个实例。然后调用实例方法make_coffee。

coffee_shop = CoffeeShop('5')

coffee_shop.make_coffee()

#=> Making espresso for $5

现在我们来调用静态方法。静态方法无法修改类或实例状态,因此通常用于工具函数,例如,把2个数字相加。我们这里用它来检查天气。天气晴朗。太好了!

coffee_shop.check_weather()

#=> Its sunny

现在让我们使用类方法修改CoffeeShop的属性specialty,然后调用make_coffee()方法来制作咖啡。

coffee_shop.change_specialty('drip coffee')

#=> Specialty changed to drip coffeecoffee_shop.make_coffee()

#=> Making drip coffee for $5

注意:make_coffee过去是用来做意式浓缩咖啡(espresso)的,但现在用来做滴滤咖啡(drip coffee)了!

2. “func”和“ func()”有什么区别?

这个问题的目的是想看看你是否理解所有函数也是Python中的对象。

def func():

print('Im a function')

func

#=> function __main__.func>func()

#=> Im a function

func是表示函数的对象,它可以被分配给变量或传递给另一个函数。带圆括号的func()调用该函数并返回其输出。

3. 解释map函数的工作原理。

Map函数返回一个列表,该列表由对序列中的每个元素应用一个函数时返回的值组成。

def add_three(x):

return x + 3li = [1,2,3][i for i in map(add_three, li)]

#=> [4, 5, 6]

上面,我对列表中的每个元素的值加了3。

4. 解释reduce函数的工作原理。

这个问题很棘手,在你使用过它几次之前,你得努力尝试自己能够理解它。

reduce接受一个函数和一个序列,然后对序列进行迭代。在每次迭代中,当前元素和前一个元素的输出都传递给函数。最后,返回一个值。

from functools import reduce

def add_three(x,y):

return x + y

li = [1,2,3,5]

reduce(add_three, li)

#=> 11

返回11,它是1 + 2 + 3 + 5的总和。

5.解释filter函数的工作原理

Filter函数顾名思义,是用来按顺序过滤元素。

每个元素都被传递给一个函数,如果函数返回True,则在输出序列中返回该元素;如果函数返回False,则将其丢弃。

def add_three(x):

if x % 2 == 0:

return True

else:

return Falseli = [1,2,3,4,5,6,7,8][i for i in filter(add_three, li)]

#=> [2, 4, 6, 8]

注意上面所有不能被2整除的元素如何被删除的。

预约申请免费试听课

怕钱不够?就业挣钱后再付学费!    怕学不会?从入学起,达内定制课程!     担心就业?达内多家实践企业供你挑选!

上一篇:Python语言的优缺点,普及python的优缺点
下一篇:手把手教你嵌入式C语言优化技巧

如何将Flash中的程序转移到RAM中运行?

手把手教你嵌入式C语言优化技巧

python面试题及技巧带答案

Python语言的优缺点,普及python的优缺点

选择城市和中心
江西省

贵州省

广西省

海南省