类和对象的概念很难去用简明的文字描述清楚。从知乎上面的一个回答中可以尝试去理解:

对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

类:类是一个模板,它描述一类对象的行为和状态。

我觉得有一本书对这个类与对象描述的特别好:Head First Java第2版中文版,大家可以通过Java去学习类和对象。

class

class是用来定义类的。类在面向对象编程里面是很有用的,能够大大提升开发效率和代码维护性。直接上代码学习:

class student(object):

def print_info(self):

print("student's info is very important!")

student1 = student()

student1.print_info()

运行结果如图:

class student():

def __init__(self,name,gender):

self.Name = name

self.Gender = gender

print("student's name is ",name,' and it is a ',gender)

testman = student("Mike","Male")

这个类可以通过一个__init__ 进行初始化,相当于定义类了。在主代码中,先要进行实例化,即testman = student() 然后才能调用里面的方法。运行结果如下:

继承

关于继承,就是子类可以继承父类的公有函数。例如:

class Parent:

def Family(self):

print("we are family")

class Child(Parent):

pass

father = Parent()

son = Child()

father.Family()

son.Family()

在这里,Parent 类是父类,Child 类是子类,但是通过定义,继承了父类。所以在后面实例化之后,son 依然可以调用父类的函数。最后的运行结果如下:

override

当然,子类除了继承,还可以重写父类的函数功能。

class Parent:

def Family(self):

print("we are family")

class Child(Parent):

def Family(self):

print("hey,i am son")

father = Parent()

son = Child()

father.Family()

son.Family()

在这个例子中,Child 类重写了父类函数里面的Family 函数,最后的运行结果如下:

super

super是一个超类。这个概念很抽象,但是用例子来说明一下就不会那么抽象了。

class Parent:

def Family(self):

print("we are family")

class Child(Parent):

def Family(self):

print("hey,i am son")

super(Child,self).Family()

print("again, i am son")

father = Parent()

son = Child()

father.Family()

son.Family()

运行结果如下:

从上面的例子很容易看出,super 就是将父类的函数再调用了一次。

以上这篇Python之Class&Object用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: Python之Class&Object用法详解

本文地址: http://www.cppcns.com/jiaoben/python/295276.html

python定义类object_Python之ClassObject用法详解相关推荐

  1. python——class类和方法的用法详解

    因为一直不太清楚面向对象的类和方法的编程思想,所以特地补了一下python-class的知识,在这里记录和分享一下. 文章目录 类和方法的概念和实例 1.python类:`class` 2.类的构造方 ...

  2. python 函数参数self_Python类中self参数用法详解

    Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上.后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了. 首先明确的是s ...

  3. python3 isinstance用法_对python中assert、isinstance的用法详解

    1. assert 函数说明: Assert statements are a convenient way to insert debugging assertions into a program ...

  4. python装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  5. python的raw_ input是什么意思-对python中raw_input()和input()的用法详解

    最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...

  6. python中str和input_对python中raw_input()和input()的用法详解

    最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...

  7. python中permute_PyTorch中permute的用法详解

    PyTorch中permute的用法详解 permute(dims) 将tensor的维度换位. 参数:参数是一系列的整数,代表原来张量的维度.比如三维就有0,1,2这些dimension. 例: i ...

  8. python中递归函数写法_python递归函数用法详解

    上期我们介绍了函数式编程,这期内容就是关于递归的函数内容,本期还是按照老规矩,给大家进行核心整理,内容通俗易懂,搭配实际应用,以供大家理解. 关于递归: 百度解释:是指函数/过程/子程序在运行过程序中 ...

  9. python emit_PyQT5 emit 和 connect的用法详解

    对于PyQT4, PyQT5在一些使用上有着比较明显的变化有很大的变化,让人惊讶是在emit和connect上的一些变化比较有意思,相信也是QT为了更好的和Python相结合做的改进. 先上一张图: ...

最新文章

  1. 罗辑思维在全链路压测方面的实践和工作笔记
  2. 数据包构造分析工具Hping3常用命令集合大学霸IT达人
  3. 详解Struts2 Action名称的搜索顺序
  4. MySQL 全文索引实现简单版搜索引擎
  5. Python爬虫快速入门,BeautifulSoup基本使用及实践
  6. 【转载】android权限大全
  7. php实习生很苦吗,实习生就该被欺负做又累又苦的活吗?!
  8. 用Openswan组建Linux IPSec ---第一部分
  9. R语言作加权最小二乘_超越谷歌BERT!依图预训练语言理解模型入选NeurIPS
  10. 2017-11-14【Python】爬虫练习
  11. 刘宏伟计算机组成,哈工大组成原理和数据结构 ppt 计算机组成原理刘宏伟 版本一 第18讲...
  12. python字符画绘制代码_python图片转字符画代码是什么
  13. 惠普打印机 HP web 服务打不开
  14. MAC 下ifconfig看IP
  15. 【微信小程序】用户授权及getUserProfile接口使用
  16. MATLAB 与 音频处理 相关内容摘记
  17. Android uevent进程源码分析
  18. 福昕阅读器和编辑器使用注意事项高级查找功能两个应用软件共用。但是注意不能卸载福昕编辑器,试验过卸载后福昕阅读器就没有查找功能了
  19. Electron 麒麟 Linux 系统 root 账户报错
  20. android 9.0 toast不显示,9.0 toast定位+WebDriverWait显示等待

热门文章

  1. 腾讯2013年校园招聘笔试试题
  2. [转载]c#中 uint--byte[]--char[]--string相互转换汇总
  3. 计算机专业去广发银行,2019广发银行招聘计算机模拟试题
  4. pq 中m函数判断嵌套_Python中numpy的布尔判断、切片、维度变化、合并、通用函数...
  5. python的结构_Python结构的选择,python,之
  6. 密码必须至少为6个字符_【每日一题】| 常见的编码方式之栅栏密码
  7. c语言编程单向链表排序,【分享】C语言 简单链表创建 排序 输出
  8. 什么插件格式化文档_推荐15款IntelliJ IDEA 神级插件
  9. python递归排序组合_如何用Python求list的排列组合:一种递归方式
  10. linux串口传文件除了rz,使用sz/rz基于串口传输文件