python继承

每日面试之 面试基础1

删除回忆录丶 提交于 2019-12-03 02:44:41
目录 面试基础1 1 、sorted和sort这俩有什么区别 2、exec() eval()的区别 3、元类可以做什么 4、新式类和经典类 5、迭代器和生成器 6.关于装饰器 7.猴子补丁 8.==和is 9.浅拷贝和深拷贝 10.可变类型和不可变类型 11.Python的自省功能 12.Python中的下划线 13only/defer/select_related/perfetch_related 14为什么学习python 15通过什么途径学习的Python? 16Python和Java、PHP、C、C#、C++等其他语言的对比? 17简述解释型和编译型编程语言? 18Python解释器种类以及特点? 19位和字节的关系? 20 b、B、KB、MB、GB 的关系? 21请至少列举5个 PEP8 规范(越多越好)。 面试基础1 1 、sorted和sort这俩有什么区别 sorted() l=[1,3] l.sort() Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。 sort是容器的函数,用List的成员函数sort进行排序 sorted是Python的内建函数相同的参数,用built-in函数sorted进行排序 sorted(iterable,key=None,reverse

Python 类型转换

淺唱寂寞╮ 提交于 2019-12-03 02:15:10
版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(String) Python 运算符 Python 列表(list) Python 元组(Tuple) Python 集合(Set) Python 字典(Dictionary) Python If … Else Python While 循环 Python For 循环 Python 函数 Python Lambda Python 类与对象 Python 继承 Python 迭代器(Iterator) Python 模块 Python 日期(Datetime) Python JSON Python 正则表达式(RegEx) Python PIP包管理器 Python 异常处理(Try…Except) Python 打开文件(File Open) Python 读文件 Python 写文件 Python 删除文件与文件夹 指定变量类型 有时需要为变量指定类型。这可以通过类型转换来实现。Python作为一种面向对象的语言,使用类来定义数据类型,包括基本数据类型的定义。 Python中使用构造函数来进行类型转换: int() - 以整数、浮点数(会被取整)或字符串表示的数字构造整数 float()

Python 迭代器(Iterator)

我的梦境 提交于 2019-12-03 02:14:59
版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(String) Python 运算符 Python 列表(list) Python 元组(Tuple) Python 集合(Set) Python 字典(Dictionary) Python If … Else Python While 循环 Python For 循环 Python 函数 Python Lambda Python 类与对象 Python 继承 Python 迭代器(Iterator) Python 模块 Python 日期(Datetime) Python JSON Python 正则表达式(RegEx) Python PIP包管理器 Python 异常处理(Try…Except) Python 打开文件(File Open) Python 读文件 Python 写文件 Python 删除文件与文件夹 Python 迭代器(Iterator) 迭代器是一个包含有限数量值的对象。 迭代器是一个可以被迭代的对象,可以遍历迭代器中的所有值。 从技术上讲,在Python中,迭代器是实现迭代器协议的对象,该协议由方法 __iter__() 和 __next__() 组成。

Python简单制作GUI界面

我怕爱的太早我们不能终老 提交于 2019-12-03 01:36:31
不管你是 Mac OS 系统,还是 Windows 系统,它都可以生成相对应的操作界面,这就是所谓的跨平台。其原理就是我们使用 Python代码去调用 Tkinter, Tkinter 已经封装了访问TK的接口,这个接口是一个图形库,支持多跨平台操作系统,进而通过它,我们就可以调用我们系统本身的GUI接口了。 操作系统:Windows / Linux / Mac OS Python版本:3.6.6 [Python] 纯文本查看 复制代码 ? 1 2 3 4 5 import tkinter # 定义一个窗体 top = tkinter.Tk() # 将其加入主循环 top.mainloop() [Python] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 import tkinter as tk import tkinter.messagebox as mbox # 定义MainUI类表示应用/窗口,继承Frame类 class MainUI(tk.Frame): # Application构造函数,master为窗口的父控件 def

配置文件

匿名 (未验证) 提交于 2019-12-03 00:41:02
# 使用配置文件 # why :给程序提供一些默认的或个性化的全局参数 # what: 分块kv存储,默认形式有 ini,conf, cfg # how : configparse, http://devdocs.io/python~3.6/library/configparser #[DEFAULT] # section 章节 特殊的章节 import configparser base_dir = r‘D:\python全站‘ config = configparser.ConfigParser() config[‘DEFAULT‘] = {‘base_dir‘:‘D:\python全站‘} config_path = os.path.join(base_dir, ‘common.ini‘) with open(config_path, ‘w‘) as f: config.write(f) --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-2-9e2c1545cc34> in <module>() 3 config = configparser

Python异常

﹥>﹥吖頭↗ 提交于 2019-12-03 00:06:35
异常的概念、识别报错信息 异常处理 断言的基本使用 异常类型(异常就是报错) 常见异常 NameError:名称错误    SyntaxError:语法错误    TypeError:类型错误 错误回溯 查看报错原因、报错的行,以及执行的代码 通过错误回溯,可以直接查看到这些内容 异常本身是类(基于继承) 在 Python 中所有的异常都是继承自 BaseException 分为四大类: SystemExit:Python退出异常    KeyboardInterrupt: 键盘打断(Ctrl+C) GeneratorExit: 生成器退出     Exception: 普通异常 异常处理 try  except  else  finally 注意:try 后面必须跟上 except try中的代码没有报错,才会执行else中的代码 有没有报错,都会执行finally中的代码 捕获具体的异常 except 后面写上捕获具体的异常类型( 语法错误SyntaxError捕捉不到 ),通过as 把捕获的异常信息 储存到后面的变量里 代码中会出现的异常都是 Exception 的子类, 因此在不确定异常类型时,except 中只需要在最后加上 Exception即可(也捕捉不到语法错误) 自定义异常类型 raise 主动抛出异常的类型 自定义的异常必须继承Exception

一些面试题总结

匿名 (未验证) 提交于 2019-12-02 23:57:01
合并字典:请合并下面两个字典 a = {"A":1,"B":2},b = {"C":3,"D":4} dict1 = {"A": 1, "B": 2} dict2 = {"C": 3, "D": 4} # 方式一 **表示打散 print({**dict1, **dict2}) # * ** 都表示打散可迭代对象 # 方式二 update方法 dict1.update(dict2) # 合并字典 元组操作:如何把元组 ("a","b") 和元组 (1,2),变为字典 {"a":1,"b":2} # zip的使用 a = ("a", "b") b = (1, 2) print(dict(zip(a, b))) 交换字典的键和值 dict1 = {"A": 1, "B": 2} res = {k: v for v, k in dict1.items()} print(res) 我们知道对于列表可以使用切片操作进行部分元素的选择,那么如何对生成器类型的对象实现相同的功能呢? Python交换两个变量的值 a,b=b,a 这个不是元组解包,在栈的顶端做两个值的交换。 read()/readline()/readlines() with open('test.txt', 'r', encoding='utf-8') as f: text = f.read() print(text) with

Python 22 面向对象 -- 初识

橙三吉。 提交于 2019-12-02 23:35:15
楔子 比如开发一个人狗大战的游戏,用当前的语法来是写是这样的 def person(name,age,sex,job): data = { 'name':name, 'age':age, 'sex':sex, 'job':job } return data def dog(name,dog_type): data = { 'name':name, 'type':dog_type } return data View Code 上面两个方法相当于造了两个模子,如何生成真实的呢 d1 = dog("李磊","京巴") p1 = person("严帅",36,"F","运维") p2 = person("egon",27,"F","Teacher") View Code 两个角色生成了,但是还要有功能啊,比如狗咬人,人打狗,嗯,再开发一个函数 def bark(d): print("dog %s:wang.wang..wang..."%d['name']) def walk(p): print("person %s is walking..." %p['name']) bark和walk 然后调用函数就是了 walk(p1) bark(d1) 调用bark和walk 上面的功能实现的简直是完美,但是你不小心犯了一个错 p1 = person("严帅",36,"F","运维") bark

Python面向对象的三大特性―封装,继承,多态

匿名 (未验证) 提交于 2019-12-02 22:56:40
面向对象的三大特性 封装是面向对象的一大特点,将属性和方法封装到一个类中。外界使用类创建对象,然后用对象调用方法 class person () : def __init__ (self, name, weight) : # 初始化方法 self.name = name self.weight = weight def decrease (self) : # 定义减肥方法 self.weight -= 0.5 print '每次跑步会减重0.5公斤!' def increase (self) : #定义增肥方法 self.weight += 1.0 print '每次吃东西会增重1.0公斤!' def __str__ (self) : # 定义str方法 return '我的名字叫%s,我的体重是%.2f' % (self.name, self.weight) jay = person( 'jay' , 70 ) # 利用person类创建对象 jay.decrease() # 调用jay的方法 jay.increase() print jay lily = person( 'lily' , 45 ) # 同样利用person创建对象,一个类可以创建多个对象 lily.decrease() # 调用lily的方法 print lily 举例1: 需求:房间和家具: 1.房子有户型

selenium +python之Page Obiect设计模式

匿名 (未验证) 提交于 2019-12-02 22:56:40
PageObject是selenium自动化测试项目开发实践的最佳设计模式之一,它主要体现对界面交互细节的封装,这样可以使测试案例更关注于业务而非界面细节,从而提高测试案例的可读性。 1.认识PageObject PageObject设计模式的优点如下: *减少代码的重复 *提高测试用例的可读性 *提高测试用例的可维护性,特别针对UI频繁变动的项目。 当为web页面编写测试是,需要操作该web页面上的元素。然而,如果在测试代码中直接操作HTML元素,代码是及其脆弱的,因为ui的变动性会很大。我们可以将page对象封装成一个HTML页面,然后通过提供应用程序特定的API来操作页面元素。而不是在HTML中来定位。 page对象的一个 基本经验法则 是:凡是人能够做的事,page对象通过软件客户端都能够做到。因此,他应该提供一个易于编程的接口并隐藏窗口底层的部件。所以访问一个文本框应该通过一个访问方法(accessor method)来实现字符串的获取与返回,复选框应当使用布尔值,按钮应当被表示为行为导向的方法名。page对象应当将在GUI控件上所有查询和操作数据的行为封装为方法 一个好的 经验法则 是:即使改变具体的控件,page对象的接口也不应当发生改变 尽管该术语是:“页面”对象,但是并不意味着需要针对每个页面建立一个这样的对象。例如:页面有重要意义的元素可以独立为一个page对象