python里类的概念
Python编程中类的概念可以比作是某种类型集合的描述,如“人类”可以被看作一个类,然后用人类这个类定义出每个具体的人——你、我、他等作为其对象。类还拥有属性和功能,属性即类本身的一些特性,如人类有名字、身高和体重等属性,而具体值则会根据每个人的不同;功能则是类所能实现的行为,如人类拥有吃饭、走路和睡觉等功能。具体的形式如下:
[python] view plain copy
例:类的概念
class 人类:
名字 = '未命名' # 成员变量
def 说话(内容): # 成员函数
print 内容 # 成员变量赋初始值
某人 = 人类() # 定义一个人类对象某人
某人.名字 = "路人甲"
某人.说话 ('大家好') # 路人甲说话
大家好! # 输出
Python中定义和使用类的形式为:class 类名[(父类名)]:[成员函数及成员变量],类名为这个类的名称,而父类名为可选,但定义父类名后,子类则拥有父类的相应属性和方法。在用类定义成对象时,会先调用__init__构造函数,以初始化对象的各属性,类的各属性(成员变量)均可以在构造函数中定义,定义时只要加上对象指针就好了。而在对象销毁时,则会调用__del__析构函数,定义类的成员函数时,必须默认一个变量(类似于C++中的this指针)代表类定义的对象本身,这个变量的名称可自行定义,下面例子将使用self变量表示类对象变量。
__也表示私有,如果要调用,必须采用实例名.类名.方法的形式进行调用。
[python] view plain copy
例:类定义及使用
class CAnimal:
name = 'unname' # 成员变量
def init(self,voice='hello'): # 重载构造函数
self.voice = voice # 创建成员变量并赋初始值
def del(self): # 重载析构函数
pass # 空操作
def Say(self):
print self.voice
t = CAnimal() # 定义动物对象t
t.Say() # t说话
hello # 输出
dog = CAnimal('wow') # 定义动物对象dog
dog.Say() # dog说话
wow # 输出
Python编程中类可以承继父类属性,形式为class 类名(父类),子类可以继承父类的所有方法和属性,也可以重载父类的成员函数及属性,须注意的是子类成员函数若重载父类(即名字相同),则会使用子类成员函数,其实准确的来讲这个概念在C++里应该是隐藏:
[python] view plain copy
例:类的继承
class CAnimal:
def init(self,voice='hello'): # voice初始化默认为hello
self.voice = voice
def Say(self):
print self.voice
def Run(self):
pass # 空操作语句(不做任何操作)
class CDog(CAnimal): # 继承类CAnimal
def SetVoice(self,voice): # 子类增加函数SetVoice
self.voice = voice
def Run(self): # 子类重载函数Run
print 'Running'
bobo = CDog()
bobo.SetVoice('My Name is BoBo!') # 设置child.data为hello
bobo.Say()
bobo.Run()
My Name is BoBo!
Running
转载于:https://www.cnblogs.com/kongk/p/8643307.html
python里类的概念相关推荐
- python元类的概念_Python中的元类编程 | 学步园
过去有这样的概念,一直没有深究它的意义.今天同事问到,刚好也好好了解下. #===============================================Python中的元类编程=== ...
- 沐阳Python扫盲01类的概念与实例
沐阳Python扫盲01类的概念与实例 文章目录 沐阳Python扫盲01类的概念与实例 前言 一.面向过程编程的实现 二.面向对象编程的实现 总结 前言 让我们从一个实际的游戏人物例子出发,学习理解 ...
- python装饰器类-PYTHON里的装饰器能装饰类吗
扩展回答 如何理解python里的装饰器 通常可以理解它是一个hook 的回调函数. 或者是理解成python 留给二次开发的一个内置API. 一般是用回调和hook 方式实现的. 如何理解Pytho ...
- python类装饰器详解-Python装饰器基础概念与用法详解
本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...
- python里的class定义类为什么括号有object
很多同学有疑问,为什么python里的class定义类括号有object 当我在python编辑器里输入object后,然后按住ctrl键+鼠标左键 即可查看object里的方法 class obje ...
- 关于python创建类的深入理解
背景 我们知道在python中一切皆为对象的概念,那我们们来看一段程序 class Foo(object):def __init__(self, name):self.name = namef = F ...
- Python的零基础超详细讲解(第十三天)-Python的类与对象
基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...
- 如何创建你的第一个Python元类?
Python元类设置类的行为和规则.元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一.通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类.本文介绍 ...
- python基础类型,Python基础-类
Python基础-类 @(Python)[python, python基础] 写在前面 如非特别说明,下文均基于Python3 摘要 本文重点讲述如何创建和使用Python类,绑定方法与非绑定方法的区 ...
最新文章
- 【转】python类中super()和__init__()的区别
- 信息学奥赛一本通 ybt 1933:【05NOIP普及组】循环 | 洛谷 P1050 [NOIP2005 普及组] 循环
- Python学习笔记之几点代码格式要求
- 云计算(1)---基础知识
- 自学 HTML 和 CSS,有哪些好的教材和网站教程推荐?
- linux 单用户模式 挂载u盘_Linux服务器如何识别移动硬盘?
- Git——三大分区【工作区 / 暂存区 / 版本区】
- 力扣-830 较大分组的位置
- 低通滤波-matlab低通滤波程序
- 2018年TI杯大学生电子设计竞赛
- 使用Intel NCS算力棒 安装部署记录 VirtualBox With Ubuntu16.04 Source Aliyun
- Unity Timeline自定义轨道
- 腾讯坐标系转化成百度坐标系
- 实战HTML:部分美团首页静态界面
- mysql32位的能装在64位的电脑上吗,32位处理器能装64位系统吗
- 分子动力学软件-VMD(win版)
- 学生学籍系统 按班级查找按学号查找
- 机器学习数据挖掘笔记_18(PGM练习二:贝叶斯网络在遗传图谱在的应用)
- Unity入门——角色属性设置
- 各种相似度计算的python实现
热门文章
- php form validator 下单,PHP Form表单验证:PHP form validator使_php
- homebrew长时间停在Updating Homebrew 这个步骤
- linux可以不用grub吗,既然不用Win了,那么GrubDOS也不用了。linux grub求指导
- python 3d大数据可视化_Python大数据可视化编程实践-绘制图表
- SpringBoot学习笔记(9)----SpringBoot中使用关系型数据库以及事务处理
- Transactional cannot be resolved to a type
- C# 实例练习——字符串处理(第三天)
- android studio -genymotion神奇错误
- windows phone (12) 小试自定义样式
- 【dubbo】http.conn.HttpHostConnectException.host: 'org.apache.http.HttpHost' could not be instantiated