每天五道面试题(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')
谈谈你对面向对象的理解?

面向对象编程是一种编程范式,他有三个特征:继承,封装,多态。

继承:
概念:一个类继承另一个类的所有属性与方法。
目的:减少代码复用。
封装:
概念:调用属性必须通过调用包含这个属性的方法,这样就可以把实现的细节封闭起来。
目的:安全性。
多态:
概念:相同的事务在相同的情况下表现出不同的反应。
目的:让程序更加灵活,一个类可以表现出多个类的样式。

面向对象编程中,一切皆为对象,比起面向过程编程,他让开发者用人的角度来思考问题。

上一篇下一篇

猜你喜欢

热点阅读