您的位置:

python进阶学习之面向对象(python面向对象教程)

本文目录一览:

Python中的面向对象(进阶)

一、实例方法,类方法,静态方法

我们首先写一个类,里面包含这三种方法。

可以看到,我们用到了两个装饰器。

我们用类和实例分别调用下类方法

我们用类和实例分别调用下静态方法

静态方法其实就是把一个普通的函数写在类里,与直接在外层写一个函数是一样的,本质上是一个函数。

为了方便理解,我们分别打印下这些方法的类型

通过type()查看对象是方法还是函数

此外,还可以通过inspect模块判断某个对象是否是某种类型,返回布尔值。

用法

小Tips:概念理解

直接def定义的,我们叫做函数

把函数放到类里,我们叫做方法

方法可以通过装饰器staticmethod转为(放在方法里的)函数

继承

一个类继承另一个类时,会自动获得另一个类的所有属性和方法,被继承的类称之为父类,新类称为子类。子类拥有父类所有的属性和方法,并且可以定义自己的属性和方法

我们以上边的Rectangle类为父类来试一下

1)完全继承

可以看到,子类完全继承父类后,可以直接调用父类的所有方法。

2)部分继承

部分继承:继承父类后,修改父类的同名方法

我们试一下,Square继承Rectangle后,修改__init__()方法

3)拓展父类的方法

在保留父类中某个方法的代码同时,对方法进行拓展

可以在方法中加入"super().方法名"来实现

4)@property

Python中面向对象是什么意思?

Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。比如说C主要面向过程,而JAVA主要面向对象。

Python之什么叫面向对象

面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动,所以程序=对象+消息。

面向对象有三大特性,封装、继承和多态。

封装就是将一类事物的属性和行为抽象成一个类,使其属性私有化,行为公开化,提高了数据的隐秘性的同时,使代码模块化。这样做使得代码的复用性更高。

相关推荐:《Python视频教程》

继承则是进一步将一类事物共有的属性和行为抽象成一个父类,而每一个子类是一个特殊的父类--有父类的行为和属性,也有自己特有的行为和属性。这样做扩展了已存在的代码块,进一步提高了代码的复用性。

如果说封装和继承是为了使代码重用,那么多态则是为了实现接口重用。多态的一大作用就是为了解耦--为了解除父子类继承的耦合度。如果说继承中父子类的关系式IS-A的关系,那么接口和实现类之之间的关系式HAS-A。简单来说,多态就是允许父类引用(或接口)指向子类(或实现类)对象。很多的设计模式都是基于面向对象的多态性设计的。

总结一下,如果说封装和继承是面向对象的基础,那么多态则是面向对象最精髓的理论。掌握多态必先了解接口,只有充分理解接口才能更好的应用多态。

想学python从哪里入手

初学者学习Python需循序渐进,可以从以下内容入手学习:

1.Python基础知识

学习任何一门编程语言都需要学习相关语法知识,Python基础知识的学习主要包括Python解释器执行原理、字符编码、注释、变量、缩进、流程控制、文件操作、数据类型、数据类型内置方法、字符串格式化、运算符、输入输出、三元运算、collections、列表、字典、元组、集合、IO操作、文件增删改查、函数等。

2.函数和常用模块

函数和常用模块的学习内容主要包括装饰器原理和使用、高阶函数、迭代器与生成器、函数式编程、函数递归、二分查找、模块介绍、re正则模块、os\sys模块、subprocess模块、shuti\shelve\itertools模块、hashlib模块、logging日志模块、time\datetime\traceback模块、json\pickle\yam\configparser处理模块、urllib\paramiko模块等。

3.面向对象

Python面向对象知识的学习主要包括面向对象和类介绍、创建类、经典类与新式类、面向对象的三大特性、类的普通成员、字段方法属性、类的高级成员、静态字段、静态方法、静态属性、类方法、MetaClass\AbstractClass、类成员修饰符等。

4.网络编程基础

Python网络编程基础学习内容包括Python模块SocketServer使用和源码剖析、GIL内部机制、线程锁、事件、生产者消费模型、进程的使用、进程间数据共享等。

5.数据库、缓存、队列

Python数据库、缓存、队列学习内容为Python操作redis、Python操作memcache、rabbitMQ消息队列、数据库介绍、mysql数据库安装使用、mysql管理、mysql数据类型、常用mysql命令、创建数据库、外键、增删改查表、权限、事务、索引、Python操作mysql等。

6.Web开发基础

Python之Web开发基础学习内容为HTML基础、CSS基础、JavaScript基础、局部变量和全局变量、集合、数组、字典、函数参数、原型、面向对象、作用域、dom编程、jquery介绍、jquery选择器、jquery属性和CSS操作、jquery文档处理、jquery筛选、jquery事件托管、jquery事件、jquery

ajax、jquery扩展方法、bootstrap使用、EasyUI介绍和使用等。

7.Web框架学习

Python之Web框架学习内容为Web框架本质、socket服务器、基于反射的路由系统、WSGI介绍及原理实现、开发自己的Web框架、MVC和MTV、路由系统、模板、django基础学习与使用、普通路由和动态路由、模板引擎、ORM介绍、Django

ORM增删改查学习、自定义tag、django进阶学习与使用、模型绑定、Form表单验证、Django

ORM进阶学习、ModelForm、自定义Validator等。

python面向对象的三大特征的用法和函数的用法一样吗

python面向对象的三大特征的用法和函数的用法一样。面向对象的三大特性是指封装、继承和多态。面向对象编程是一种编程方式,此编程方式的落地需要使用类和对象来实现,所以,面向对象编程其实就是对类和对象的使用。类就是一个模板,模板里可以包含多个函数,函数里实现一些功能对象则是根据模板创建的实例,通过实例对象可以执行类中的函数。