6期面试题解答


1、可迭代对象、迭代器、生成器分别是啥?有啥区别?python

可迭代对象:能够进行for循环都是可迭代对象,缘由是其内部实现了一个__iter__方法面试

迭代器:可以进行next(迭代器对象),都是迭代器对象,其内部实现了__iter__和__next__方法,
迭代器属于可迭代对象
生成器:元祖推导式和函数里使用yield的函数都是生成器,生成器本质上属于迭代器,惰性机制,节省内存
 编程

 

2、手写装饰器app


def wrapper(func):
    def inner(*args,**kwargs):
#         执行函数前操做
        ret =  func(*args,**kwargs)
#          执行函数后操做
        return ret
    return inner
@wrapper
def func():
    print(666)
func()编程语言


3、Python函数式编程是什么?函数式编程

函数式编程是种编程典范,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambdacalculus)。
并且λ演算的函数能够接受函数看成输入(参数)和输出(返回值)。和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。
和过程化编程相比,函数式编程里,函数的计算可随时调用。函数

 

4、面向对象有哪些内置方法orm


__str__
__del__
__len__
__hash__
__eq__
__format__
__new__
__getitem__、__setitem__、__delitem__对象

 

5、repr'和str的区别继承


Python打印值的时候会保持该值在Python代码中的状态,不是用户所但愿看到的状态。而使用print打印值则不同,print打印出来的值是用户所但愿看到的状态。

str 把值转换为合理形式的字符串,给用户看的。str实际上相似于int,long,是一种类型。

repr() 建立一个字符串,以合法python表达式的形式来表示值。repr()是一个函数。

总而言之,str出来的值是给人看的字符串,repr出来的值是给机器看的,括号中的任何内容出来后都是在它之上再加上一层引号

若是str和reor只能选择一个的时候要用repr,能够顶替str。

 

 

6、手写递归斐波那契数列


def f(n):
    if n==0:
        return 0
    elif n==1:
        return 1
    elif n>1:
        return f(n-1) + f(n-2)


7、递归的两个准则是什么?

一、调用自身

二、结束条件

8、简述类属性和对象属性


#类属性和对象属性的做用域
#类属性:公有属性,私有属性,内置属性
#对象属性:公有属性,私有属性,内置属性,方法变量,全局变量
#类属性和对象属性定义
#Python一切皆对象(object),每一个对象均可能有多个属性(attribute)。Python的属性有一套统一的管理方案。
#对象的属性可能来自于其类定义,叫作类属性(class attribute)。类属性可能来自类定义自身,也可能根据类定义继承来的。
#一个对象的属性还多是该对象实例定义的,叫作对象属性(object attribute)。

 

其余面试题以下:

相关文章
相关标签/搜索