python继承

python语法拾遗-OOP与错误调试

依然范特西╮ 提交于 2020-01-25 02:58:06
title: python语法拾遗(一) date: 2019-11-12 12:23:49 categories: Python Python语法相关 tags: python 语法使用 OOP description: python面对对象编程(类,继承,多态),错误调试 python面对对象编程(类,继承,多态,鸭子类型) 概念 类(class)与实例(instance) 类是抽象的模板,实例是根据类创建的具体“对象”。实例之间拥有相同的方法,但各自数据可能不同。 __init__ 方法,给模板类添加必要的属性。其中,在变量名前添加‘__’双下划线,可以将其变为私有变量,即外部不能随意访问修改。 在类中定义方法,可以保护内部数据,将方法的具体细节隐藏在类内部。 class Studnet ( object ) : def __init__ ( self , name , score ) : self . __name = name self . __score = score def get_gender ( self ) : return self . __name def set_score ( self,score ) : if 0 <= score <= 100 : self . __score = score else : raise ValueError (

Python自学面向对象章节有感

时间秒杀一切 提交于 2020-01-24 23:41:04
Python面向对象程序设计有感 有学到面对对象中的对象是指客观世界中存在的对象,世间万物全可以是对象。概括上说,面向对象技术是一种从组织结构上模拟客观世界的方法。我的主观感受上并没有很好的理解这种编程思想,也没有明确的感受到它与面向过程编程的区别,这或许是因为我才接触编程半年,在后续的学习中,我会继续探索。 1.面向对象概述 (1)对象 对象分为静态部分和动态部分,静态部分被称为“属性”指对象本身的属性,例如人的性别、身高,动态部分指对象的行为,例如人可以走路、跑步。 具有相同属性和行为的一类实体被称为类,类是封装对象的属性和行为的载体。我在之后的学习中明白类是极为重要的,不知道其他语言是不是也要类的概率…… 面向对象程序设计有封装、继承和多态三大基本特征。区别如下: 特征 概念 作用 封装 指用类作为载体将对象的属性和行为封装起来 是面向对象程序设计的核心思维,保证了类内部数据的完整性 继承 子类复用父类的属性和行为的同时又有特有的属性和行为 是实现重复利用的重要手段 多态 将父类对象应用于子类的特征 子类继承父类的勇士,也具备自己的特征并且能够实现不用的效果 在后续的学习中,我初步了解了封装、继承以及多态的意思和效果,挺神奇的…… 2.类的定义和使用 定义类需要使用关键字class(为什么是class?),语法是 class classname: ,接着是应用语法 name

Python基础教程(第三版)读书笔记(7)

筅森魡賤 提交于 2020-01-24 17:07:02
文章目录 再谈抽象 对象魔法 多态 封装 继承 类 创建自定义类 私有属性 类的命名空间。 指定超类 深入探讨继承 多个超类 接口 抽象基类 模块abc,显式接口 小结 再谈抽象 这一章学习Python面向对象编程,学习对象、类、多态、封装、继承、接口和内省。 对象魔法 多态: 可对不同类型的对象执行相同的操作。 封装: 对外部隐藏有关对象工作原理的细节。 继承: 可基于通用类创建出专用类 多态 Python中多态用的地方超级多,也叫 鸭子模型 。我们一直用的‘+’就应用了多态。它的功能是将俩个对象相加,至于对象是什么类型。它并不在意,无论是数字还是字符串类型。它都可以使用。这就是多态。 >> > 1 + 1 2 >> > 'one' + 'one' 'oneone' 封装 封装就像用电视机,你按电源,电视打开。但是你不知道具体是怎么实现的。对于外部它是保密的,是密封的。python中的封装是需要将属性变成私有的。 继承 继承就像是子承父业,孩子不需要做什么就可以拥有和父亲一样多的东西。孩子还可以在父亲的基础上做出自己的东西。也可以把父亲的企业按照自己的意愿再修改。 类 类是一种抽象。一种概括,人细分的话有很多很多种人,但是特别的分的话只有男人和女人两种人。类就是这样, 概括 最重要的部分。而 具体 到每个个体,这个个体就是一个 对象 ,是男人类或者女人类的一个 实例

Python的内置函数(三十一)、super()

旧街凉风 提交于 2020-01-24 06:03:35
描述 super() 函数是用于调用父类(超类)的一个方法。 super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。 MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。 语法 以下是 super() 方法的语法: super(type[, object-or-type]) 参数 type -- 类。 object-or-type -- 类,一般是 self Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx : Python3.x 实例: class A: def add(self, x): y = x+1 print(y) class B(A): def add(self, x): super().add(x) b = B() b.add(2) Output: -- 3 -- Python2.x 实例: #!/usr/bin/python # -*- coding: UTF-8 -*- class A(object): # Python2.x 记得继承 object def add(self, x): y = x+1 print(y)

python面向对象

两盒软妹~` 提交于 2020-01-24 00:07:09
1面向对象编程 1.1.什么是面向对象思想 面向对象思想指的是一种编程思想(思想是指想法而不是实现),相对于面向过程而言。只关心哪个对象完成这个功能,它关注的是完成功能的结果。它决定了编写代码的一种习惯和流程。这种思想和语法无关,不同的语言会有不同的实现(python,java,python,c++,js…)。 1.2.面向对象和面向过程的区别 面向过程关注的是完成业务需求需要的步骤,每次完成业务(无论是否相同)都按照步骤一步一步的实现; 面向对象关注是完成业务需求需要的对象(实体),有了对象就可以使用对象上的功能,是一种解决程序复用的设计和编程方法(下次再实现相同的业务直接调用已经实现的实体避免代码的重复)。 2.3.面向对象思想的特点 A.是符合人们思考习惯的一种思想 B.将程序员从执行者转换为指挥者 C.将复杂的事情简单化 面向对象的三大特征: 封装,继承,多态 计算机解决复杂问题的唯一出路 – 面向对象。 在面向对象的世界里:万物皆对象 2.面向对象的语法 2.1.类的概念 例如: 你找了个对象,给你老妈说想带回家,你咋说? 1.通过中文描述现实世界的事物: 外在的特征:外在的属性描述 内在的行为:具备的功能 比如: 手机: 外在特征:颜色,大小,品牌 内在行为:打电话,发短信,上网,玩游戏 2.在计算机中,python需要通过一个类来描述现实世界的事物。 类的定义

python之旅:面向对象之多态、多态性

北战南征 提交于 2020-01-23 09:38:52
一 多态 多态指的是一类事物有多种形态 eg:动物有多种形态:猫,狗,猪 class Animal: #动物类 def eat(self): #吃 pass def drink(self): #喝 pass def sleep(self): #睡 pass class Cat(Animal): def jiao(self): print('喵喵喵') class Dog(Animal): def call(self): print('汪汪汪') class Pig(Animal): def han(self): print('哼哼哼') c=Cat() d=Dog() p=Pig() # 多态性:可以在不用考虑对象具体类型的前提下而直接使用对象下的方法 c.drink() d.drink() p.drink() c.sleep() d.sleep() p.sleep() c.jiao() d.call() p.han() 文件有多种形态:文本文件,可执行文件 import abc class File(metaclass=abc.ABCMeta): #同一类事物:文件 @abc.abstractmethod def click(self): pass class Text(File): #文件的形态之一:文本文件 def click(self): print('open file'

Python自动化开发学习的第一周----python基础学习

社会主义新天地 提交于 2020-01-22 23:53:08
1.Python的发展史 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。 Granddaddy of Python web frameworks, Zope 1 was released in 1999 Python 1.0 - January 1994 增加了 lambda , map , filter and reduce . Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础 Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生 Python 2.5 - September 19, 2006 Python 2.6 - October 1, 2008 Python 2.7 - July 3, 2010 In

python 多态

 ̄綄美尐妖づ 提交于 2020-01-22 20:34:43
python时弱类型语言,其最明显的特征是在使用变量时,无需为其指定具体的数据类型。这会导致一种情况,即同一变量可能会被先后赋值不同的对象。 class xiaobai: def say(self): print("赋值的是xiaobai类的实例对象") class lilei: def say(self): print("赋值的是lilei类的实例对象") a = xiaobai() a.say() a = lilei() a.say() 赋值的是xiaobai类的实例对象 赋值的是lilei类的实例对象 可以看到,a可以被先后赋值为xiaobai类和lilei类的对象,但这并不是多态。类的多态特性,还要满足以下2个前提条件: 继承:多态一定是发生在子类和父类之间 重写:子类重写了父类的方法 class xiaobai: def say(self): print("调用的是xiaobai类的say方法") class lilei(xiaobai): def say(self): print("调用的是lilei类的say方法") class mary(xiaobai): def say(self): print("调用的是mary类的say方法") a = xiaobai() a.say() a = lilei() a.say() a = mary() a.say()

python 继承机制

三世轮回 提交于 2020-01-22 19:26:53
继承机制经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想将现有类代码复制给新类。也就是说,通过继承这种机制,可以实现类的重复使用。 class Shape: def draw(self, content): print("画", content) #class Form(Shape)就表示Form继承Shape class Form(Shape): def area(self): print("此图形的面积为...") #实现方法为:让Form类继承Shape类,这样当Form类对象调用draw()方法时,python解释器会先去Form中找以draw为名的方法,如果找不到,它会自动去Shape类中找。 python中实现继承的类称为子类,被继承的类称为父类(也可称为基类、超类)。 子类继承父类时,只需在定义子类时,将父类(可以是多个)放在子类之后的圆括号里即可。 注意:如果该类没有显式指定继承自哪个类,则默认继承object类(object类是python中所有类的父类)。 python的继承是多继承机制(和C++一样),即一个子类可以同时拥有多个直接父类。 class People: def say(self): print("我是一个人,名字是:", self.name) class Animal: def display

python 父类方法重写

限于喜欢 提交于 2020-01-22 19:26:10
class Bird: def isWing(self): print("鸟有翅膀") def fly(self): print("鸟会飞") class Ostrich(Bird): def fly(self): print("鸵鸟不会飞") ostrich = Ostrich() ostrich.fly() 鸵鸟不会飞 如何调用被重写的方法 事实上,如果我们在子类中重写了从父类继承来的类方法,那么当在类的外部通过子类对象调用该方法时,python总是会执行子类中的重写的方法。 class Bird: def isWing(self): print("鸟有翅膀") def fly(self): print("鸟会飞") class Ostrich(Bird): def fly(self): print("鸵鸟不会飞") ostrich = Ostrich() #调用 Bird 类中的 fly() 方法 Bird.fly(ostrich) #通过类名调用实例方法的这种方式,又被称为未绑定方法。 鸟会飞 注意:使用类名调用其类方法,python不会为该方法的第一个self参数自动绑定值,因此采用这种调用方法,需要手动为self参数赋值。 来源: https://www.cnblogs.com/xiaobaizzz/p/12229354.html