每天五道面试题(5)
2020-03-11 本文已影响0人
寒暄_HX
logging模块的作用?以及应用场景?
为应用开发实现了一个灵活的事件日志系统。通常用来排错,记录操作与记录用户行为。
请用代码简答实现stack 。
class Stack(object):
def __init__(self):
self.stack = []
def push(self, value): # 进栈
self.stack.append(value)
def pop(self): #出栈
if self.stack:
self.stack.pop()
else:
raise LookupError('stack is empty!')
def is_empty(self): # 如果栈为空
return bool(self.stack)
def top(self):
#取出目前stack中最新的元素
return self.stack[-1]
谈谈你对闭包的理解?
说闭包前,得先说闭包的构造:
一个函数A内部定义了一个函数B。
再说闭包的条件:
函数B可以使用函数A的变量。
函数A的返回值是函数B。
一般情况下,函数的调用会随着函数的返回而结束,但是闭包函数却是随着函数A调用的返回开始调用函数B。这个传递的过程中,函数A的其他变量会一起传递。
如何使用python删除一个文件?
os.remove('a.txt')
谈谈你对面向对象的理解?
面向对象编程是一种编程范式,他有三个特征:继承,封装,多态。
继承:
概念:一个类继承另一个类的所有属性与方法。
目的:减少代码复用。
封装:
概念:调用属性必须通过调用包含这个属性的方法,这样就可以把实现的细节封闭起来。
目的:安全性。
多态:
概念:相同的事务在相同的情况下表现出不同的反应。
目的:让程序更加灵活,一个类可以表现出多个类的样式。
面向对象编程中,一切皆为对象,比起面向过程编程,他让开发者用人的角度来思考问题。