python继承

python之封装、多态、反射

落花浮王杯 提交于 2019-11-26 07:29:18
一、封装 1.1封装的定义 在程序设计中,封装是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。 要了解封装,离不开“私有化”,就是将类或者是函数中的某些属性限制在某个区域之内,外部无法调用。 1.2封装的用处 封装数据的主要原因是:保护隐私(把不想别人知道的东西封装起来) 封装方法的主要原因是:隔离复杂度 注意:在编程语言里,对外提供的接口(接口可理解为了一个入口),就是函数,称为接口函数,这与接口的概念还 不一样,接口代表一组接口函数的集合体。 1.3封装的两个层面 (1)类就是麻袋,这本身就是一种封装 (2)类中定义私有的,只有类的内部使用,外部无法访问 class People: _star='earth' #单下划线表示被隐藏起来 def __init__(self,name,id,age,salary): self.name=name self.id=id self.age=age self.salary=salary def get_id(self): print('[%s的身份证号是%s]'%(self.name,self.id)) p1=People('czd','62012393208',18,100000) print(p1._star) class People: __star='earth' #双下划綫 def _

第十三章:python基础面试80题

女生的网名这么多〃 提交于 2019-11-26 07:17:56
文章目录 1. 为什么学习Python 2. 通过什么途径学习的Python 3. Python和Java、PHP、C、C#、C++等其他语言的对比 4. 简述解释型和编译型编程语言 5. Python解释器种类以及特点 6. 位和字节的关系 7. b、B、KB、MB、GB 的关系 8. 请至少列举5个 PEP8 规范 9. 通过代码实现如下转换 10. 请编写一个函数实现将IP地址转换成一个整数 11. python递归的最大层数(次数) 12. 求结果 13. ascii、unicode、utf-8、gbk 区别 14. 字节码和机器码的区别 15. 三元运算规则以及应用场景 16. 列举 Python2和Python3的区别 17. 用一行代码实现数值交换 18. Python3和Python2中 int 和 long的区别 19. xrange和range的区别 20. 文件操作时:xreadlines和readlines的区别 21. 列举布尔值为False的常见值? 22. 字符串、列表、元组、字典每个常用的5个方法? 23. lambda表达式格式以及应用场景? 24. pass的作用? 25. *arg和**kwarg作用 26. is和==的区别 27. 简述Python的深浅拷贝以及应用场景? 28. Python垃圾回收机制? 29.

python 01

安稳与你 提交于 2019-11-26 05:57:24
类和对象   简单的说,类是对象的蓝图和模板,而对象是类的实例。在面向对象编程的世界中, 一切皆为对象 ,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类。 导入库, import 库名 for 循环,如果计数的情况则使用 开始 结束 步长 range的区间是一个前闭后开. range(start,end,[step]) 格式化输出 %-->%(),%d后接整型,%f后接浮点,%s后接字符串. {}-->format(),它可以直接传入任何类型,然后格式化输出. print 控制台(terminal)打印 end 以什么方式结尾,默认以换行符"\n" flush 刷新缓冲区. 类中的函数可以有自己的参数 当你想共享这个参数的时候,那么就打上"self"的印记. 案例: 定义类: object 不是一个参数 定义类只有两步: 1. 使用标识符class ClassName(object): 2. 重写__init__函数,但是需要记住,一定要打上一个"self"的标记 因为后面会学到继承,当在继承的时候可能就会有函数名相撞的情况. 或者说,类中会含有多个变量,多个函数,那么就需要使用"self"手段去区分. 3. 类的传参是在__init__函数中的.需要注意的是,如果你的参数可能被多个函数都使用,那么 你才在__init__函数中去定义参数 案例: 案例: 练习:

Python基础常见问题总结(一)

非 Y 不嫁゛ 提交于 2019-11-26 04:28:28
1 .__ foo 、foo_ 和 __foo__ 三者之间的区别是什么? __foo表示私有属性、_foo表示受保护的属性、__foo__表示Python自带的属性 2.请您简述Python编译的工作原理,PyCodeObject 和 PyFrameObject 对象的作用。 Python编译的工作原理:Python语言写的程序不需要编译成二进制代码,它可以直 接从源代码运行程序。当我们运行Python文件程序的时候, Python解释器把源代码转换成中间形式:字节码,然后再由Python虚 拟机来执行这些字节码。 PyCodeObject对象:pyc 字节码在Python虚拟机中对应的是PyCodeObject对象,虚拟机将字节封装成一个PyCodeObject对象再一条条执行字节码指令。 PyFrameObject对象:当发生函数调用时,创建新的帧,对应Python的实现就是PyFrameObject对象。 3.如何理解self、cls、和super? self是实例方法定义中的第一个参数,代表该方法的实例对象 cls是类方法中的第一个参数,代表当前类 super是指在Python面向对象的继承特征下中,若子类调用父类方法则需要super()实现。 4.如何区分@classmethod和@staticmethod? @classmethod是类装饰器

Python基础(1)

久未见 提交于 2019-11-26 04:26:15
1.面向对象思想有三大要素:封装、继承、多态 封装: 就是把客观的事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的信息隐藏。隐藏实现细节,使得代码模块化。 继承: 可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。可以扩展已存在的代码模块。 多态: 是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。父类引用指向子类对象。 2.函数的写法  2.1函数与类的标准写法      """ def 函数名称(): #由“:”时,则需要按tab键,缩进一个tab键,保证规范 | 函数标识 标识 类名 (object) : | | class classname """ 2.2导入库、for循环、格式化输出 """ 导入库, import 库名 for 循环,如果计数的情况则使用--------开始 结束 [步长] range的区间是一个前闭后开.--------range(start,end,[step]) 格式化输出     %-->%(),%d后接整型, %f后接浮点, %s后接字符串.     {}-->format(),它可以直接传入任何类型,然后格式化输出. print 控制台(terminal)打印 end 以什么方式结尾,默认以换行符"

骚包操作!Python一行命令把你的电脑秒变成服务器

故事扮演 提交于 2019-11-26 04:23:28
不知道你有没有遇到这么一种情况,就是你有时候想要把电脑上的一些东西传输到你的手机或者 Pad ,你要么需要使用数据线连接到电脑: 有时候还要装各种驱动才可以进行数据传输, 要么需要借助第三方的工具,在局域网上传输; 还有就是使用微信的文件传输助手... 不过这些操作都有些局限,比如各种驱动安装不上,第三方的工具突然傻逼,又或者突然断网,这就 wtf 了。 不过,咱这不有 Python 嘛,今天小帅b来跟你分享一个技巧,使用一个命令就可以把你的电脑变成服务器,这样你的手机就可以直接获取你电脑的文件了。 这个命令就是: python3 -m http.server Python学习交流资料交流分享群:852250729 当你执行完这个命令的时候,你的电脑会监听 8000 端口,只要访问这个端口(手机和电脑需要在同一局域网下),你的手机就可以获取到你这个电脑的所有文件: 如果你想使用手机或者其它设备来访问你的电脑文件,可以先看看你这台电脑的 IP 地址: 然后在手机上使用 “IP : 端口” 就可以访问了: 访问电脑里的图片: Python学习交流资料交流分享群:852250729 随便选一张: 也可以直接查看电脑里的 PDF 文件: 当然,也可以直接访问电脑里的网页: Python学习交流资料交流分享群:10667510 对于大点的文件,也可以直接下载下来:

使用pytest————持续更新中

大兔子大兔子 提交于 2019-11-26 01:43:25
pytest 1,最简单的示例 import pytest def test_case_01(): print("执行test01") assert 1 # 断言成功 def test_case_02(): print("执行test02") assert 0 # 断言失败 if __name__ == '__main__': pytest.main(['test_01.py']) 运行结果如下: pytest 1,最简单的示例 import pytest def test_case_01(): print("执行test01") assert 1 # 断言成功 def test_case_02(): print("执行test02") assert 0 # 断言失败 if __name__ == '__main__': pytest.main(['test_01.py']) 运行结果如下: 如图所示: 在执行完成之后先会显示test01.py,后面跟着.F 其中.代表执行成功,F代表执行失败,并且在下方会展示错误的提示 2,pytest使用步骤: 1,导入pytest 2,编写测试用例 一,无需在测试类下编写测试用例,可以直接编写测试函数 二,测试函数名必须包含test_ 开头,或者_test结尾; 3,在pytest框架下执行测试用例 在py文件内执行测试用例: pytest

Python 01

偶尔善良 提交于 2019-11-25 16:57:55
类和对象 简单的说,类是对象的蓝图和模板,而对象是类的实例。这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型)。当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做“类”的东西。 函数的写法 有冒号就要锁紧一个tab(4个空格) 在Python中所有的函数都有返回值,如果你没有给予return则默认返回出none,如果给予了,则返回你给予的值 标识 函数的名称 def funname(): return 标识 类名 () class classname(): 1.导入库,import 库名 2.for循环,如果计数的情况则使用 range的区间是一个前闭后开。 range(start,end,[step]) 3.格式化输出 3.1 %-->%(),%d后接整型,%f后接浮点,%s后接字符串 3.2{}-->format(),他可以直接传入任何类型,然后格式化输出。 4.print控制台(terminal)打印 4.1 end以什么方式结尾,默认以换行符“\n” 4.2 flush刷新缓冲区。 类中的函数可以有自己的参数 当你想共享这个参数的时候,就打上“self”的印记。