python继承

Python之面向对象(三)继承详解以及面向对象三大特性

旧巷老猫 提交于 2019-11-28 16:25:12
6.4 面向对象之:继承 面向对象的继承简介:继承(英语:inheritance)是面向对象软件技术当中的一个概念。如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”。继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类别追加新的属性和方法也是常见的做法。 一般静态的面向对象编程语言,继承属于静态的,意即在子类别的行为在编译期就已经决定,无法在执行期扩充。 继承例子: class Person def __init__(self,name,sex,age): self.name=name self.sex=sex self.age=age class Cat: def __init__(self,name,sex,age): self.name=name self.sex=sex self.age=age class Dog: def __init__(self,name,sex,age): self.name=name self.age=age self.sex=sex #继承的用法 class Aniaml(object): def __init__

Python之面向对象(四)类的约束与super()深入了解

删除回忆录丶 提交于 2019-11-28 16:25:11
6.6 类的约束 首先,你要清楚,约束是对类的约束,什么叫抽象类?从小到大的过程叫做抽象 接口类:(在抽象类的基础上)在python中,默认是没有接口类的,接口类不能被实例化(如果实例化会报错),接口类中的方法不能被实现 例子: #正常调用 class Applepay: def pay(self,money): print('apple pay 支付了%s'%money) class Alipay: def pay(self,money): print('支付宝 支付了%s'%money) def payment(pay_obj,money):#实例化另外一种调用,这个方法让实例化的时候按照pyment调用就像下面的payment(apple1,200) pay_obj.pay(money) apple1=Applepay() Payment(apple1,200) 有时候写的时候会把方法写错,自己定义一个主动报错;接口初成:手动报异常:NotImplementedError来解决开发中遇到的问题 例子: class Payment: def pay(self): raise NotImplementedError#主动让程序报错 class Wechatpay(Payment):#微信支付 def pay(self,money): print('微信支付了%s元'%money)

Python之面向对象(二)类的空间问题及类之间的关系

↘锁芯ラ 提交于 2019-11-28 16:23:36
6.3 类的空间问题及类之间的关系 类空间的问题 何处可以添加对象属性 class A: def __init__(self,name): self.name = name def func(self,sex): self.sex = sex obj = A("alex") obj.age = 18 # 通过__init__方法添加 print(obj.__dict__) obj1 = A("wusir") obj.func("男") # 通过func方法添加 print(obj1.__dict__) # 结果: {'name': 'alex', 'age': 18} {'name': 'wusir'} 总结:对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加 何处可以添加类的静态属性 class A: def __init__(self,name): self.name = name def func(self,sex): self.sex = sex def func1(self): A.bbb = 'ccc' A.aaa = "alex" # 类的外部添加 print(A.__dict__) A.func1(111) # 类的内部添加 print(A.__dict__) 总结:类的属性不仅可以在类内部添加,还可以在类的外部添加

基本 Python 面试问题

放肆的年华 提交于 2019-11-28 16:21:52
基本 Python 面试问题 * 1. Python 中的列表和元组有什么区别? * 2. Python 的主要功能是什么? * 3. python 是编程语言还是脚本语言? * 4. Python 是一种解释性语言吗? * 5. 什么是 pep 8? * 6. python 是如何进行内存管理的? * 7. 什么是 Python 的命名空间? * 8. python 语言中 PYTHONPATH 是什么? * 9. 什么是 python 模块?在 Python 中命名一些常用的内置模块? * 10. Python 中的局部变量和全局变量 * 11. python 是否区分大小写? * 12. Python 中的类型转换 * 13. Python 中有哪些内置类型? * 14. python 中是否需要缩进? * 15. Python 中 array和 list 有什么区别? * 16. Python 中的函数是什么? * 17. init 的含义是什么? * 18.什么是 lambda 函数? * 19. Python 中的 self 是什么? * 20. break、continue、pass 的用法? * 21. [:: - 1} 的作用是什么? * 22. 如何在 Python 中随机化列表中的项目? * 23. 什么是 python 迭代器? * 24. 如何在

python类的继承

∥☆過路亽.° 提交于 2019-11-28 16:17:14
一、概述     面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。   通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”,继承的过程,就是从一般到特殊的过程。在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。   继承概念的实现方式主要有2类:实现继承、接口继承。 实现继承是指使用基类的属性和方法而无需额外编码的能力。 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力(子类重构爹类方法)。   在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类。但是 Leg 类却不能继承 Person 类,因为腿并不是一个人。   OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。 二、类的继承 2.1 继承的定义 class Person(object): # 定义一个父类 def talk(self): # 父类中的方法 print("person is

python 类定义 继承

丶灬走出姿态 提交于 2019-11-28 16:16:53
0 前言   系统:win7 64bit   IDE : python(x,y) 2.7.6.1   IDE集成的解释器:Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32 1 单继承 1.1 定义一个时间类,带默认参数 class mytime(object): def __init__(self,hour=21, \ minute=13, \ second=50): self.hour = hour self.minute = minute self.second = second def __str__(self): return '__str__ hour:minute:second = %02d:%02d:%02d' \ %(self.hour,self.minute,self.second) def get_hour(self): return self.hour def get_minute(self): return self.minute def get_second(self): return self.second def print_time(self): print 'hour:minute:second = %02d:%02d:%02d' %

python -------继承 接口类

可紊 提交于 2019-11-28 16:16:39
# 单继承 ***** # 先抽象再继承,几个类之间的相同代码抽象出来,成为父类 # 子类自己没有的名字,就可以使用父类的方法和属性 # 如果子类自己有,一定是先用自己的 # 在类中使用self的时候,一定要看清楚self指向谁 # 多继承 *** # 新式类和经典类: # 多继承寻找名字的顺序 : 新式类广度优先,经典类深度优先 # 新式类中 有一个类名.mro方法,查看广度优先的继承顺序 # python3中 有一个super方法,根据广度优先的继承顺序查找上一个类 -----------------------------------接口类------------------------------------------------------------ # java : 面向对象编程 # 设计模式 —— 接口 # 接口类 : python原生不支持 # 抽象类 : python原生支持的 from abc import abstractmethod,ABCMeta class Payment(metaclass=ABCMeta): # 元类 默认的元类 type #metaclass =ABCMeta 意味着下面要写一个规范类。 @abstractmethod def pay(self,money):pass # 没有实现这个方法 # 规范 :接口类或者抽象类都可以 #

python 类定义 继承

允我心安 提交于 2019-11-28 16:16:20
0 前言   系统:win7 64bit   IDE : python(x,y) 2.7.6.1   IDE集成的解释器:Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32 1 单继承 1.1 定义一个时间类,带默认参数 class mytime(object): def __init__(self,hour=21, \ minute=13, \ second=50): self.hour = hour self.minute = minute self.second = second def __str__(self): return '__str__ hour:minute:second = %02d:%02d:%02d' \ %(self.hour,self.minute,self.second) def get_hour(self): return self.hour def get_minute(self): return self.minute def get_second(self): return self.second def print_time(self): print 'hour:minute:second = %02d:%02d:%02d' %

初识python: 继承

蓝咒 提交于 2019-11-28 15:38:06
继承:可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。   通过继承创建的新类称为“子类”或“派生类”。   被继承的类称为“基类”、“父类”或“超类”。   继承的过程,就是从一般到特殊的过程。   要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式主要有2类:实现继承、接口继承。 实现继承 :使用基类的属性和方法而无需额外编码的能力; 接口继承 :仅使用属性和方法的名称、但是子类必须提供实现的能力(子类重构父类方法); * 注:在考虑使用继承时,两个类之间的关系应该是“属于”关系。例如,“学生”是一个人,“老师” 也是一个人,因此这两个类都可以继承 “人”这个 类。但是 “腿”这个类却不能继承 “人”这个类,因为“腿”并不是一个人。 抽象类仅定义由子类创建的一般属性和方法。 OOP开发范式大致为:划分对象→抽象类→将类组织成层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。 实例: 仅继承,不做任何其他事。 # class People 经典类写法 # 经典类与新式类的主要区别在继承方式 class People(object): #

Pyhton介绍、发展趋势、安装

给你一囗甜甜゛ 提交于 2019-11-28 15:33:12
Pyhton介绍、发展趋势、安装 一、Python起源 ​ Pyhton的创始人为 吉多·范罗苏姆(Gudio van Rossum) (后文简称 龟叔 ) 1. 1989年的圣诞节期间,龟叔为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为ABC语言的继承。 2. ABC是由龟叔设计的一种教学语言,在龟叔看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,龟叔认为是非开发造成的。龟叔决心在Python中避免这一错误,并获取了非常好的效果。 3. 之所以选择Python作为这么程序语言的名字,是因为龟叔是BBC电视剧——**Monty Python's Flying Circus**的粉丝。 4. 1991年,**第一个Python解释器诞生**,它是用C语言实现的,并且能够调用C语言的库文件。龟叔希望Python这么语言能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。 二、目前Python主要应用领域 1. **WEB开发**——最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精悍的flask,bottle, Django官方的标语把Django定义为the framework for perfectionist with deadlines