Python类的定义、继承及类对象使用方法简明教程
作者:junjie 发布时间:2021-09-01 21:43:10
Python编程中类的概念可以比作是某种类型集合的描述,如“人类”可以被看作一个类,然后用人类这个类定义出每个具体的人——你、我、他等作为其对象。类还拥有属性和功能,属性即类本身的一些特性,如人类有名字、身高和体重等属性,而具体值则会根据每个人的不同;功能则是类所能实现的行为,如人类拥有吃饭、走路和睡觉等功能。具体的形式如下:
# 例:类的概念
class 人类:
名字 = '未命名' # 成员变量
def 说话(内容): # 成员函数
print 内容 # 成员变量赋初始值
某人 = 人类() # 定义一个人类对象某人
某人.名字 = "路人甲"
某人.说话 ('大家好') # 路人甲说话
>>> 大家好! # 输出Python中定义和使用类的形式为:class 类名[(父类名)]:[成员函数及成员变量],类名为这个类的名称,而父类名为可选,但定义父类名后,子类则拥有父类的相应属性和方法。在用类定义成对象时,会先调用__init__构造函数,以初始化对象的各属性,类的各属性(成员变量)均可以在构造函数中定义,定义时只要加上对象指针就好了。而在对象销毁时,则会调用__del__析构函数,定义类的成员函数时,必须默认一个变量(类似于C++中的this指针)代表类定义的对象本身,这个变量的名称可自行定义,下面例子将使用self变量表示类对象变量。
# 例:类定义及使用
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 类名(父类),子类可以继承父类的所有方法和属性,也可以重载父类的成员函数及属性,须注意的是子类成员函数若重载父类(即名字相同),则会使用子类成员函数
# 例:类的继承
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,voice): # 子类重载函数Run
print 'Running'
bobo = CDog()
bobo.SetVoice('My Name is BoBo!') # 设置child.data为hello
bobo.Say()
bobo.Run()
>> My Name is BoBo!
>> Running
猜你喜欢
- Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的
- 首先下载最新版本的python。www.python.org,目前版本为3.1。 接下来是安装,在windows下python的安装与其他应
- 本文实例为大家分享了python批量读取文件名并写入txt中的具体代码,供大家参考,具体内容如下先说下脚本使用的环境吧,在做项目的过程中需要
- 问题重现Installing golang.org/x/tools/cmd/guru FAILED Installing golang.or
- python eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果。函数定义:eval(expression, global
- 可以通过model.state_dict()或者model.named_parameters()函数查看现在的全部可训练参数(包括通过继承得
- 打开网页,然后将javascript:document.body.contentEditable='true';
- 如下所示:import urllib.requestimport urllib.parseurl = 'https://weibo.
- 今天终于可以用wxPython开发GUI程序了,非常高兴。把其中的一些注意点写下来以供参考。在windows XP平台下,首先需要做以下环境
- 目的:把训练好的pth模型参数提取出来,然后用其他方式部署到边缘设备。Pytorch给了很方便的读取参数接口:nn.Module.param
- 废话少说,先上代码File:logger.conf[formatters]keys=default[formatter_default]fo
- PHP 跳转,即重定向浏览器到指定的 URL,是一个很常见的功能。这种功能也有一些细节性的要求,比如等待多少秒以后跳转,用不用JavaScr
- 代码编辑环境Win10+(Pycharmm or Vscode)+PyQt 5.14.2功能实现静态作图:数据作图,取决于作图函数,可自行修
- 最近在对接微信公众号、微信支付等功能,发现很多都是用xml格式的。在使用django日常处理的时候,都是手动拼接的,真的是很恶心。今天仔细的
- 什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般
- 使用MySQL,目前你可以在三种基本数据库表格式间选择。当你创建一张表时,你可以告诉MySQL它应该对于表使用哪个表类型。MySQL将总是创
- 在上一篇博客中,我们学习了python遗传算法包geatpy。并用它展示了一个不带约束的单目标规划问题,对往期内容感兴趣的同学可以参考👇:链
- 一个能对访问者进行编号、记录访问次数、IP、时间的统计制作实例我以ACCESS库为例子,其实用SQL SERVER库也只要改一下链接库的语句
- 在利用QT编写GUI程序时经常需要一些交互操作,常见的有鼠标事件、键盘事件等。今天我们要实现的是在label中已经显示的图像中绘制矩形框,以
- 搜索引擎是通过分析网页源代码来分析页面文本信息的逻辑性,所以在编写网页代码的时候一定要尽可能使用合适的标签来体现文本表达的层次感,也即是让搜