python面试宝典1
2018-05-09 22:17
218 查看
多态
1. python有多态,但是不是一个严谨的多态,因为Python是一个动态语言,没有强制类型
封装
一个函数一个功能,一个类是多个相关函数的集合
继承
子类中相同的方法会放到父类中,减少代码重复性
mro 及多继承
mro类初始化顺序表,保持我们的类只初始化一次 super()从mro顺序表中找到自已的位置,从mro顺序表中调用下一个类
实例与类之间的调用关系
实例可以调用三种类型的方法(静态,类,实例),可以调用类的属性及自我的属性 类可以调用三种类型的方法(静态,类,实例),但是不能调用实例上的属性
property
1. 完成常量,常量是能得到到数据,但是不能修改数据,一般常量都是大写 2. 代码实现 这个常量一般在init中创建一个私有的属性 提供一个得到这个私有属性的方法,但是我们为了让常量更直观,在方法上加入装饰器@property 调用就可以使用(类名.方法名)
class MyMath(object): def __init__(self): self.__PI = "3.1415926" @property def PI(self): return self.__PI math = MyMath() print(math.PI) # 常量这个不能让别人修改的值
魔法属性与方法
__dict__:查看属性 __class__:查看谁创建了我 __call__:实例()调用 __init__:初始化 __new__:创建时,一般单例上下文管理代码
class MyOpen(object): def __init__(self, file, mode): # MyOpen()时调用 # print(file, mode) f = open(file, mode) self.f = f def __enter__(self): # 返回as 后面的值 return self.f def __exit__(self, *args): # 退出关闭 # print("close") self.f.close() with MyOpen("./test.txt", "r") as f: content = f.read() print(content)with改造数据库
class MyOpen(object): def __init__(self, file, mode): # MyOpen()时调用 # print(file, mode) f = open(file, mode) self.f = f def __enter__(self): # 返回as 后面的值 return self.f def __exit__(self, *args): # 退出关闭 # print("close") self.f.close() with MyOpen("./test.txt", "r") as f: content = f.read() print(content)
##上下文管理器
只要实现了init ,enter,exit这三个方法就可以说实现了上下文管理器
1.简化了代码
2.程序退出时自动关闭
3.操作时出现异常也会自动关闭
with myopen() as f:
pass
myopen()这个调用init方法
as 后面的f由enter这个方法返回
程序执行完后退出我们会执行exit,一般用来关闭资源
相关文章推荐
- 面试宝典_Python.运维开发.0004.用Python实现tail实时输出新增日志?
- 面试宝典_Python.常规算法.0001.在圆圈和框框分别填入1~8数字各一次?
- 面试宝典_Python.常规算法.0002.输出任意两个字符串中最长公共子串?
- python面试宝典2
- 面试宝典_Python.常规算法.0003.用Python去实现一个扁平化的字典?
- 面试宝典_Python.运维开发.0004.用Python实现grep-A/-B前后匹配?
- c++面试宝典(4)
- FPGA面试宝典
- python及其相关面试
- 面试宝典系列-Web安全与攻击
- Linux面试试题宝典,你能打多少分?大神勿进
- [置顶] think in java interview-高级开发人员面试宝典(八)
- 一个初级python web后端开发工程师的面试总结
- 五个python面试问题(转载)https://segmentfault.com/a/1190000000618513
- think in java interview-高级开发人员面试宝典(三)
- ZT面试宝典:最常问面试问题和最佳答案
- Net面试必备宝典
- Python面试必须要看的15个问题
- 大数据面试宝典
- 一道经典面试逻辑题的python解法