一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强…” 什么是面向对象 面向对象就不像面向过程那样按照功能划分模块了,它所关注的是软件系统有哪些参与者,把这些参与者称为对象,找出这些软件系统的参与者也就是对象之后,分析这些对象有哪些特征.哪些行为,以及对象之间的关系,所以说面向对象的开发核心是对象 什么是类 面向对象编程的两个重要的概念:类和对象 类是对象的类型…
面向对象 封装思想:将同一类的函数函数封装到同一个py文件中,方便调用 面向对象也有封装的作用,将同一类的函数封装到一个类中 多态(鸭子模型):多种类型/多种形态 #,什么事鸭子模型 对于一个函数,python对于参数的类型不会限制,传入参数时就可以是各种类型,但是在函数中如果有类似于索引等特有方法,就会对传入的参数类型有一个限制(类似于字符串的.append.send方法) 类似于上述的函数我们认为只要能呱呱叫的就是鸭子(只要有.send方法,就是我们要想的类型) # Python def f…
继承 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self): print('Animal is running...') 当我们需要编写Dog和Cat类时,就可以直接从An…
继承的特点 单继承:每个子类最多只有一个直接父类,注意是直接父类,间接父类个数不限 注意父类的概念:A-->B-->C-->D,在这里,ABC都是D的父类,C是D的直接父类,AB是D的间接父类 父类和子类是一般和特殊的关系:子类扩展了父类,子类是一种特殊的父类 Object是所有类的直接或间接父类:定义一个类时,若没有直接指定父类,则默认继承Object类 子类从父类继承了哪些要素 子类不继承父类的构造方法,但是总要调用父类的构造方法 子类继承了父类的实例变量和实例方法.类变量和类方法,…
一.类的特殊成员 我们在Python学习之==>面向对象编程(一)中已经介绍过了构造方法和析构方法,构造方法是在实例化时自动执行的方法,而析构方法是在实例被销毁的时候被执行,Python类成员中还存在着一些具有特殊意义的方法,下面我们来一一介绍一下: 1.__doc__ 表示类的描述信息 class Foo: ''' 描述类信息 ''' def func(self): pass print(Foo.__doc__) # 描述类信息 2.__module__ 和  __class__  __mod…
Python 类的继承和多态 Python 类的继承 在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候,可以从某个现有的class 继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 我们先来定义一个class Person,表示人,定义属性变量 name 及 sex (姓名和性别): 定义一个方法print_title():当sex是male时,…
面向对象三大特性 1.三大特性? 继承,多态,封装 2.什么是继承? 类的继承和现实生活中的父与子,继承关系是一样的,父类为基类. python中的类继承分为:单继承和多继承 3.举例说明 class Dad: money = 100 def __init__(self,name): self.name =name print(name) def hit(self): print('%s 正在打孩子' %self.name) class Son(Dad): pass s1 = Son('abc'…
继承和多态 继承的好处: 1,子类可以使用父类的全部功能 2,多态:当子类和父类都存在相同的方法时,子类的方法会覆盖父类的方法,即调用时会调用子类的方法.这就是继承的另一个好处:多态. 多态: 调用方只管调用,不管细节,当我们新增一种Animal的子类时,只要确保run( )方法编写正确,不用管原来的代码是如何调用的.这就是著名的“开闭”原则: 对扩展开放:允许新增Animal的子类 对修改封闭:不需要修改依赖Animal类型的run_twice( )等函数 静态语言VS动态语言 对于静态语言(…
继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类, 父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 class FatherClass1: #定义父类1 pass class FatherClass2: #定义父类2 pass class SonClass(FatherClass1): #单继承 pass class SonClass(FatherClass1,FatherClass2): #多继承 pass 查看继承…
继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Superclass). >>> class Animal(object):#名为Animal的class defrun(self): print'Animal is running...' >>> class Dog(Animal):#从Animal类继承 pass…
面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 本节对于面向对象的概念不做展开说明.本节主要内容是Python里如何使用面向对象编程. 分下面几部分: 1.类的格式 2.类的实例 3.类的封装 4.继承和多态 类的格式 下面是一个示例: student.py class Student(object): def __init__(self, name, score): s…
好激动,学了四个月的面向对象,我终于勉勉强强的把作业做完了,现在来重构我的面向对象的知识! 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强…”反正是类似于函数,但是比函数更牛逼 先看一段代码 while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭…
面向对象(简写:OOP) 面向对象编程定义:利用类和对象来创建各种模型,来实现对真实世界的描述. 优点:使程序更容易理解和维护以及扩展代码. 类定义:用来描述具有相同的属性和方法的对象的集合.(简单讲就是个模板) 实例化定义:创建一个类的实例,类的具体对象. 对象定义:通过类定义的数据结构的实例 举例:一个最简单最小结构的类写法如下: class class_name(object):    print('bababa') 举例一个正常类的写法: class 类名称(object):    de…
一.异常处理 python解释器检测到错误,触发异常(也允许程序员自己触发异常).程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关).如果捕捉成功则进入另外一个处理分支,执行你为其定制的逻辑,使程序不会崩溃,这就是异常处理. python解释器去执行程序,检测到了一个错误时,触发异常,异常触发后且没被处理的情况下,程序就在当前异常处终止,后面的代码不会运行,谁会去用一个运行着突然就崩溃的软件.所以你必须提供一种异常处理机制来增强你程序的健壮性与容错性.良好的容错…
6.2 类的空间角度研究类 6.2.1 添加对象属性 [总结]对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加. class A: address = '召唤师峡谷' def __init__(self, name): self.name = name def func(self,type): self.type = type # 类的外部可以添加 obj = A('盖伦') obj.age = 20 print(obj.__dict__) # 在类的内部可以添…
面向对象进阶当然是要谈谈面向对象的三大特性:封装.继承.多态 @property装饰器 python虽然不建议把属性和方法都设为私有的,但是完全暴露给外界也不好,这样,我们给属性赋值的有效性九无法保证,因此,为了使得对属性的访问既安全又方便,可以通过属性的getter(访问器)和setter(修改器)方法进行对应的操作,在python中,可以考虑使用@property包装器来包装getter和setter方法 class Person(object): def __init__(self,nam…
1.类和实例 1.1类的定义 类的定义使用class关键字,其后紧跟类名(通常大写开头),紧接着是(object),object是该类继承的类名,没有就继承object类. 实例化时就是类名+(),有参数需要传入参数. class Student(object): pass bart = Student() 类的属性定义在_init_方法中(相当于java的构造方法),该方法的第一个参数永远是self,在实例化时必须传入相应的参数(除self外) class Student(object): d…
### 面向对象三大特性值继承#### 1.什么是继承 继承是一种关系,必须存在两个对象才可能产生这种关系,在现实生活中的继承,王思聪可以继承王健林的财产 被继承的成为父,继承的一方成为子 在程序中,继承指的是类与类之间的关系 #### 2.为什么要使用继承 在生活中,通过继承 子可以直接享受父提供的内容,例如财产 在程序中,通过继承可以直接使用父类已有的代码 #### 3.怎么使用 在子类中,类名后面加上括号,写上父类的名称即可 在python中,一个子类,可以有多个父类,多个父类在括号中用逗…
继承 在面向对象的程序设计中,当我们定义一个class时候,可以从现有的class继承,新的class成为子类,被继承的class称为基类,父类或超类. 比如,编写一个名为Animal的class: class Animal(object): def run(self): print('动物可以跑') 接着编写两个从Animal继承的类:Dog和Cat: class Dog(Animal): pass class Cat(Animal): pass 那么,对于Dog.Cat来说,Animal就是…
在上一篇 C++ 学习笔记 (六) 继承- 子类与父类有同名函数,变量 中说了当父类子类有同名函数时在外部调用时如果不加父类名则会默认调用子类的函数.C++有函数重写的功能需要添加virtual关键字,当时写上篇博文的时候在想那么既然默认使用子类的同名函数那么这个virtual有什么意义呢? 这篇博文主要讲述 多态:一句相同的语句能有不同的实现. 当父类和子类有同名函数,调用时牵扯到了指针那么就跟virtual有关系了. 看以下几种情况: 定义两个类:父类子类有同名函数print(); clas…
多态 1.什么是多态 由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同. 举例: class H2O: def __init__(self,type,tem): self.type = type self.tem = tem def turn_ice(self): if self.tem < 0: print('%s,冻成为冰了' % self.tem) elif self.tem >0: print('%s,液化成水了' % self.tem) class Ice(H2O): pa…
-------------------类属性和实例属性关系------------------- 1.类属性和实例属性关系     1.实例属性         实例对象独有的属性     2.类属性         类名访问类属性     3.实例中无同名属性时,可访问到类属性,当定义同名实例属性时,则无法访问     4.常用的查找指令         1.vars :查看实例内属性         2.dir :显示类属性和所有实例属性         3.type :显示类型   ---…
 简介 到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程.还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向对象的编程. 类和对象是面向对象编程的两个重要方面.对于类和对象的关系,举个例子就像学生和小明同学的关系一样.学生(类)是一个拥有共同属性的群体,小明同学(对象)是其中一个有自己特性的个体. 对于一个对象或类的变量被称为域,函数被称为类或对象的方法. 域有两种类型--属于每个对象或属于类本身,分别成为实例变量和类变量. 类使用cl…
面向对象的三大特性 一.封装 把数据.值.变量放入到对象中 构造方法 _init_方法 特殊作用: 在 obj = 类名() 执行时: 内部自动执行两个步骤: 1.创建对象 2.通过对象执行类中的一个特殊方法(_init_方法) class info: def __init__(self,name,age): self.name = name self.age = age self.gender = '男' def show(self): print(self.name,self.age,sel…
该篇主要是针对面向对象的细讲,包括类的多重继承,方法的重写,析构函数,回收机制进行讲解 #该类主要是讲述python面象对象的一些特征,包括继承,方法的重写,多态,垃圾回收 class person(object):    name = ''    age = '' def __init__(self,name,age, **kwargs):        self.name = name        self.age = age        return super().__init__(…
开始学习面向对象,可以说之前的学习和编程思路都是面向过程的,从上到下,一步一步走完. 如果说一个简单的需求,用面向过程实现起来相对容易,但是如果在日常生产,面向对象就可以发挥出他的优势了. 程序的可扩展性,代码的可读性,以及后期的优化和二次开发,都是面向过程不可相比的,下面整理一下知识点. 类: #Authon Ivor class dog(object): #公有变量,如果有私有变量,优先调用私有,如果没有调用公有 age = 8 def __init__(self,name,type): s…
一.面向对象的编程 面向对象程序设计--Object Oriented Programming,简称oop,是一种程序设计思想.二.面向对象的特性类:class类,对比现实世界来说就是一个种类,一个模型.一个类即是对一类拥有相同属性的对象的抽象.蓝图.原型.在类中定义了这些对象的都具备的属性(variables(data)).共同的方法. 对象:object对象,也就是指模型造出来的具体的东西.一个对象即是一个类的实例化后实例,一个类必须经过实例化后方可在程序中调用,一个类可以实例化多个对象,每…
目录 __main__,__name__ __module__,__class__ __init__ __del__ __repr__,__str__ __mro__ __call__ __new__ __doc__ __hasattr__,__getattr__,__setattr__ __import__ __dir__ ,__all__ __enter__,__exit__ 其他函数 面对对象 Object Oriented Programming,简称oop,面向对象是种程序设计思想,我…
学习了一周的Python,虽然一本书还没看完但是也收获颇多,作为一个老码农竟然想起了曾经荒废好久的园子,写点东西当做是学习笔记吧 对Python的语法看的七七八八了,比较让我关注的还是他编程的思想,那种和C语言不同的感觉 首先是面向对象的概念: 在Python中一切皆对象,因此包括类,类型,以至于函数都是对象,每个对象都有自己的一块空间用于存放他的东西,这个概念是之前的C语言编程中一直没有的概念.因此类生成对象的过程并不是类的实现,而是一个可以生成对象的对象用他方法(也可以说是构造函数)生成了一…
接下来几天会根据http://www.cnblogs.com/chenssy/category/525010.html中讲解的java内容做个学习笔记,在此感谢一下这位大仙!! 一.封装 对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作. 使用封装有三大好处: 1.良好的封装能够减少耦合. 2.类内部的结构可以自由修改. 3.可以对成员进行更精确的控制. 4.隐藏信息,实现细节. 二.继承 继承定义了类如何相互关联,共享特性.对于若干个相同或者相…