广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中Class类用法实例分析
  • 209
分享到

Python中Class类用法实例分析

实例PythonClass 2022-06-04 19:06:28 209人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本文实例讲述了python中Class类用法。分享给大家供大家参考,具体如下: 尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一

本文实例讲述了python中Class类用法。分享给大家供大家参考,具体如下:

尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一门OO语言哦。因此我们关注Python在FP上的优势的同时,还得了解一下Python在OO方面的特性。

要讨论Python的OO特性,了解Python中的Class自然是首当其冲了。在Python中定义class和创建对象实例都很简单,具体代码如下:


class GrandPa:
  def __init__(self):
    print('I'm GrandPa')
class Father(GrandPa):
  def __init__(self):
    print('I'm Father!')
class Son(Father):
  """A simple example class"""
  i = 12345
  def __init__(self):
    print('这是构造函数,son')
  def sayHello(self):
    return 'hello world'
if __name__ == '__main__':
  son = Son()
  # 类型帮助信息 
  print('类型帮助信息: ',Son.__doc__)
  #类型名称
  print('类型名称:',Son.__name__)
  #类型所继承的基类
  print('类型所继承的基类:',Son.__bases__)
  #类型字典
  print('类型字典:',Son.__dict__)
  #类型所在模块
  print('类型所在模块:',Son.__module__)
  #实例类型
  print('实例类型:',Son().__class__)

运行效果如下:


Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more infORMation.
>>> ================================ RESTART ================================
>>> 
这是构造函数,son
类型帮助信息: A simple example class
类型名称: Son
类型所继承的基类: (<class '__main__.Father'>,)
类型字典: {'__module__': '__main__', 'sayHello': <function Son.sayHello at 0x010194F8>, '__doc__': 'A simple example class', '__init__': <function Son.__init__ at 0x010194B0>, 'i': 12345}
类型所在模块: __main__
这是构造函数,son
实例类型: <class '__main__.Son'>
>>>

Python支持多重继承

首先第一点,你会发现Class的定义中有一个括号,这是体现继承的地方。 Java用extends,C#c++用冒号(:),Python则用括号了。从括号中包含着两个值,聪明的你一定可以发现:Python支持多重继承;

__init__是Class中的构造函数

第二点,__init__是Class中的构造函数,两种不同形式的构造函数体现了Python支持函数重载。在构造函数中,有一个特别的参数self,其含义与我们在Java和C#中常见的this是一样的。在这里需要强调一点:在Class中定义的方法实质上也是function,但是在方法定义的时候必须包含self这个参数,而且必须将self这个参数放在第一位;

python成员变量

第三点,在Python中,你并不需要显式的声明Class的Data Members,而是在赋值的时候,被赋值的变量就相应成为了Class的Data Memebers,正如代码中的x和y。不仅你不需要显式的声明Data Members,更加特别的,你甚至可以通过del方法将Class中的Data Memebers给删掉。当我第一次看到这样的特性的时候,着实吃了一惊。毕竟OO的第一条就是封装了,但是这样的特性是不是破坏了封装的特性呢?

python方法二义性问题

第四点,由于Python支持多重继承,因此就有可能出现方法二义性问题[1]。然而由于Python遵循深度优先的搜寻法则,很好地避免了方法二义性的问题。例如在以上的代码中,MyClass同时继承于BaseClassA和BaseClassB,假设MyClass调用一个叫derivedMethod方法,derivedMethod同时定义在BaseClassA和BaseClassB中,且Signature也完全相同,那么BaseClassA中的方法将被调用。如果BaseClassA中并没有定义derivedMethod,而是BaseClassA的父类定义了这个方法的话,将会是BaseClassA的父类中derivedMethod被调用。总之,继承方法搜索的路径是先从左到右,在选定了一个BaseClass之后,将会一直沿着该BaseClass的继承结构进行搜索,直至最顶端,然后再到另外一个一个BaseClass。

就先说着这么多了,对于Python中OO的特性将会在以后的Post中有进一步的讲述。

方法二义性:由于一个类同时继承于两个或者多个父类,而在这些父类当中存在着signature完全相同的方法,那么编译器将无法判断子类将继承哪个父类中的方法,从而导致方法二义性问题。

希望本文所述对大家Python程序设计有所帮助。

--结束END--

本文标题: Python中Class类用法实例分析

本文链接: https://www.lsjlt.com/news/15690.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中Class类用法实例分析
    本文实例讲述了Python中Class类用法。分享给大家供大家参考,具体如下: 尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一...
    99+
    2022-06-04
    实例 Python Class
  • ES6中class类的示例分析
    这篇文章主要介绍了ES6中class类的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。class 类通过class可以定义类,新的c...
    99+
    2022-10-19
  • class使用实例分析
    这篇文章主要介绍“class使用实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“class使用实例分析”文章能帮助大家解决问题。 看到class实际都是使用...
    99+
    2022-10-19
  • python中class类与方法的用法实例详解
    目录类和方法的概念和实例1.python类:class2.类的构造方法__init__()3.类中方法的参数self4.继承5.方法重写类的特殊属性与方法类的私有属性总结因为一直不太...
    99+
    2022-11-10
  • java中class实例的示例分析
    这篇文章将为大家详细讲解有关java中class实例的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、结构说明(1)class:外部类,成员(成员内部类,静态内部类),局部内部类,匿名内部类(2...
    99+
    2023-06-15
  • es6中class类静态方法,静态属性,实例属性,实例方法的示例分析
    这篇文章主要为大家展示了“es6中class类静态方法,静态属性,实例属性,实例方法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“es6中class类...
    99+
    2022-10-19
  • ES6 javascript中Class类继承的示例分析
    小编给大家分享一下ES6 javascript中Class类继承的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体如下:1. 基本用法Class 之间可以通过extends关键字...
    99+
    2022-10-19
  • Python聚类算法之DBSACN实例分析
    本文实例讲述了Python聚类算法之DBSACN。分享给大家供大家参考,具体如下: DBSCAN:是一种简单的,基于密度的聚类算法。本次实现中,DBSCAN使用了基于中心的方法。在基于中心的方法中,每个数据...
    99+
    2022-06-04
    算法 实例 Python
  • android中Handle类的用法实例分析
    本文实例讲述了android中Handle类的用法。分享给大家供大家参考。具体如下: 当我们在处理下载或是其他需要长时间执行的任务时,如果直接把处理函数放Activity的On...
    99+
    2022-06-06
    Android
  • JavaScript ES6中class定义类实例方法
    目录前言正文1.声明类的两种方式:2.class 类的构造函数3.class中方法定义3.1 class 中定义普通的实例方法3.2 class 类中定义访问器方法3.3 类的静态方...
    99+
    2022-11-13
  • js中class类、super和extends关键词的示例分析
    小编给大家分享一下js中class类、super和extends关键词的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!正文1.es6之前创建对象先来看下e...
    99+
    2023-06-20
  • Python数据类型实例分析
    本篇内容主要讲解“Python数据类型实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python数据类型实例分析”吧!一、内容概要字符串(str)列表(list)元组(tup)字典(di...
    99+
    2023-06-02
  • Android中TelephonyManager类的方法实例分析
    本文实例讲述了Android中TelephonyManager类的方法。分享给大家供大家参考。具体如下: TelephonyManager类主要提供了一系列用于访问与手机通讯相...
    99+
    2022-06-06
    方法 Android
  • python中zip()方法应用实例分析
    本文实例分析了python中zip()方法的应用。分享给大家供大家参考,具体如下: 假设有一个集合set, 需要对set中的每个元素指定一个唯一的id,从而组建成一个dict结构。 这个场景可以演化成,两个...
    99+
    2022-06-04
    应用实例 方法 python
  • Python变量类型使用实例分析
    今天小编给大家分享一下Python变量类型使用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言:变量存储在内存中的...
    99+
    2023-06-29
  • Java Object类方法实例分析
    本文小编为大家详细介绍“Java Object类方法实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java Object类方法实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.equals方法1...
    99+
    2023-06-30
  • Python聚类算法之凝聚层次聚类实例分析
    本文实例讲述了Python聚类算法之凝聚层次聚类。分享给大家供大家参考,具体如下: 凝聚层次聚类:所谓凝聚的,指的是该算法初始时,将每个点作为一个簇,每一步合并两个最接近的簇。另外即使到最后,对于噪音点或是...
    99+
    2022-06-04
    算法 实例 层次
  • python类的继承链实例分析
    1、子类可以继承父类,同样,父类也可以继承自己的父类,一层一层地继承。 class A: def have(self): print('I hava an apple') c...
    99+
    2022-11-12
  • java中object类实例分析
    问:什么是Object类?答:Object类存储在java.lang包中,是所有java类(Object类除外)的终极父类。当然,数组也继承了Object类。然而,接口是不继承Object类的,Object类不作为接口的父类。下面,我们就通...
    99+
    2023-05-30
    java object类 ava
  • Java类变量和类方法实例分析
    本篇内容介绍了“Java类变量和类方法实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.static静态变量静态变量被同一个类的所有...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作